`
ll_feng
  • 浏览: 391163 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何锁定字段,不让更新?

阅读更多
经常会发现一在特定情况下,我们不希望某个字段值被修改,比如:一条记录的创建时间。
通常在编辑时,如果不设置创建时间,更新后的创建时间为设置为空。当然也可以将创建时间的值带到编辑页面中,再次保存时就不会为空了。那多麻烦。其实hibernate有更好的办法。那就是设置属性的update值为false.举例:
1、实体类映射
@Entity
@Table(name = "KNOW_LORE", schema = "DWYJ")
public class Lore extends BaseEntity{

	// Fields
	private Date createDate;			//创建日期

	// Constructors

	/** default constructor */
	public Lore() {
	}

	// Property accessors

	@Column(name="CREATE_DATE",updatable=false)
	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

}

这里的关键是"updateable=false"

2、更新程序
@Transactional
public void saveLore(Lore lore){
	if(lore!=null){
		if("".equals(lore.getId()))
			lore.setId(null);
			
		if(null==lore.getId()){
			lore.setCreateDate(new Timestamp(System.currentTimeMillis()));
		}
			
		dao.save(lore);
	}
}

当新增一条记录时,设置当时的系统时间。修改更新时就不予理采了。
例子是基于annotation的。如果采用xml作映射,则需在hbm.xml文件中为属性设置"update=false".举例如下:
...
<property name="createDate" type="date" update="false"/>
...
分享到:
评论

相关推荐

    字段实现关联锁定 .rar

    例如,在一个订单系统中,当一个用户正在更新订单状态时,系统可能会对订单状态字段实施锁定,确保在更新过程中其他用户无法更改该字段。这样可以避免并发操作导致的不一致性和错误。 实现字段关联锁定的方法通常有...

    Mybatis只更新set过的字段插件

    这个插件的主要作用是自动识别Mybatis中的Update语句,根据传入的参数对象,只对设置了新值的字段生成UPDATE语句,从而避免了全字段更新的问题,提高了数据更新的效率,并降低了数据库锁定的风险。在原1.0版本中,...

    C#更新SQLServer中TimeStamp字段(时间戳)的方法

    - 使用`乐观锁`:允许用户读取数据而不锁定,只有在更新时检查是否有其他用户在此期间修改了数据。 - 使用`悲观锁`:在读取数据时就锁定该行,防止其他用户修改,直到事务结束才释放锁。 总的来说,C#中操作SQL ...

    SuperMap Objects .NET 字段更新

    总结起来,"SuperMap Objects .NET 字段更新"这个范例主要展示了如何利用SuperMap Objects .NET组件与.NET Framework结合,读取TXT文件并将其内容更新到SuperMap数据集的字段中,实现了跨系统的数据同步。...

    字段被SDE用户锁定的解决办法.txt

    当一个字段被锁定后,可能会导致其他用户无法对该字段进行更新或删除操作,从而影响数据库的正常运行和维护工作。本文将详细介绍如何解决Oracle字段被SDE用户锁定的问题。 #### 一、理解SDE用户和锁定机制 在...

    Oracle数据库表中字段顺序的修改方法

    首先,让我们看看如何在Oracle中新增字段。新增字段的基本语法是: ```sql alter table tablename add (column datatype [default value][null/not null],…); ``` 例如,创建一个名为`test1`的表,并添加一个`id`...

    如何使用MySQL一个表中的字段更新另一个表中字段

    在MySQL中,更新一个表中的字段值以匹配另一个表中的对应字段值是一项常见的数据库操作,特别是在数据同步或数据整合的情景下。以下是一些关于如何执行这种操作的关键知识点: 1. **基于JOIN的更新**: - 在标题和...

    Mysql User表权限字段说明全介绍

    18. Lock_tables_priv:用户能否锁定表以防止其他用户同时修改,常用于批量操作。 19. Execute_priv:仅在MySQL 5.0及以上版本中,允许用户执行存储过程。 20. Repl_slave_priv:用于复制环境,允许用户读取主...

    jdbc+hibernate存取blob字段

    for update"`,使用`for update`锁定刚插入的记录,以便后续更新。通过`ResultSet`的`getBlob()`方法获取BLOB对象。 5. **读取二进制文件**:加载要写入的二进制文件到内存,这里可以使用`FileInputStream`读取...

    ACCESS数据库锁定问题.pdf

    Access的窗体也有锁定功能,可以用来限制用户对特定字段的编辑。这虽然不等同于数据库级别的排它锁,但在用户界面层面可以提供一定程度的控制。 8. **处理并发的其他策略**: 除了使用事务和自定义锁定外,还可以...

    MySQL 数据库锁定机制

    ### MySQL 数据库锁定...而在对数据一致性要求较高且不太关心并发性能的场景下,则可以选择使用 MyISAM 存储引擎的表级锁定。通过深入理解这些锁定机制的工作原理和优化技巧,可以更好地管理和优化 MySQL 数据库系统。

    无法更新临时表的问题

    5. **代码错误**:在VFP中,可能在代码中存在错误,例如SQL语句语法错误,或者试图更新不存在的字段等,这也会导致更新失败。 6. **环境变量**:VFP的环境变量如USER, WORKAREA等可能没有正确设置,这可能影响到...

    Mybatis-Plus中乐观锁@version注解的问题与解决方案.docx

    2. 使用悲观锁:使用悲观锁可以锁定记录,防止其他事务同时更新记录。 3. 版本号类型的选择:选择适合的版本号类型,例如使用字符串类型或时间戳类型来避免溢出问题。 4. Null 版本号的处理:使用默认值或 Nullable ...

    oracle_BLOB字段上传附件步骤.doc

    在Java应用程序中,操作BLOB字段上传附件涉及到多个步骤,主要包括读取、写入和更新BLOB数据。以下是对这些步骤的详细解释: 1. **新建记录并插入BLOB数据** - 首先,创建新记录时,利用Oracle提供的`empty_blob()...

    SQL Server 2008中SQL查询语句字段值不区分大小写的问题解决

    然而,根据描述中的问题,用户遇到了一个场景,即在查询过程中,数据库似乎没有区分字段值的大小写,这可能导致登录接口中的用户名验证不正确。为了解决这个问题,我们可以采取以下几种方法: **一、问题分析** 在...

    oracle数据库中如何处理clob字段方法介绍

    - 含有CLOB字段的表不能使用`DISTINCT`关键字,因为这会尝试对整个记录进行唯一性检查,包括CLOB字段。 - CLOB字段不支持LIKE操作符,无法进行文本匹配。 - 解决方案: - 将CLOB转换为VARCHAR2处理,但可能受限...

    金蝶K3BOS单据转换-流程设置.docx

    源单和目的单可以双向追溯,但源单扣减字段更新可能导致分录关闭。 4. **强制钩稽关联**:与钩稽关联类似,但只能下推一次目的单,同样具有反写和关闭字段的功能。 5. **关联复制关联**:支持复制关系的同时记录...

Global site tag (gtag.js) - Google Analytics