JPA 怎样方便的定义LastUpdateTime 和 CreateTime 字段
2013-08-12 15:40
169 查看
在一个JPA Entity中定义了java.util.Date类型的LastUpdateTime 和 CreateTime 两个字段实例。
现在想要的需求是在执行 EntityManager 的 persist 方法(即执行SQL 的Insert)时 会自动给 CreateTime和 LastUpdateTime一个当前时间的初始值,以后执行 EntityManager 的 merge 方法(即执行SQL 的update)时,自动给 LastUpdateTime 一个当前时间值,同时忽略 CreateTime 的修改。
有没有JPA 的注解可以实现这个需求?因为是用Hibernate4.0实现的JPA ,所以有没有Hibernate 的注解可以实现这个需求?
其实最麻烦的就是 每次 merge 的时候忽略 CreateTime 字段的更新值,不然每次更新时都要先获取一次数据后塞回给entity,再执行merge,这样效率非常低下啊。
因为用的是MySQL,所以 LastUpdateTime 我定义成 "TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",但是发现没有意义,如果偷懒不在代码中给 LastUpdateTime赋值,JPA 会自动给它赋值为Null。
现在想要的需求是在执行 EntityManager 的 persist 方法(即执行SQL 的Insert)时 会自动给 CreateTime和 LastUpdateTime一个当前时间的初始值,以后执行 EntityManager 的 merge 方法(即执行SQL 的update)时,自动给 LastUpdateTime 一个当前时间值,同时忽略 CreateTime 的修改。
有没有JPA 的注解可以实现这个需求?因为是用Hibernate4.0实现的JPA ,所以有没有Hibernate 的注解可以实现这个需求?
其实最麻烦的就是 每次 merge 的时候忽略 CreateTime 字段的更新值,不然每次更新时都要先获取一次数据后塞回给entity,再执行merge,这样效率非常低下啊。
因为用的是MySQL,所以 LastUpdateTime 我定义成 "TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",但是发现没有意义,如果偷懒不在代码中给 LastUpdateTime赋值,JPA 会自动给它赋值为Null。
相关文章推荐
- zeoslib:怎样定义字段的显示格式
- SQL中字段定义char时怎样插入带有引号的值
- zeoslib:怎样定义字段的显示格式
- 怎样方便的定义一个边框为1的表格
- SpringData JPA中数据库表的映射类需要一个不在表中的字段
- 定义字段状态变式(Field Status Variants)
- 怎样用css的style分别定义两个超级链接的link,visited,hover颜色属性
- 【移动开发】怎样自己定义ViewGroup
- Spring boot中使用Spring-data-jpa方便快捷的访问数据库(推荐)
- PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变
- 怎样将Oracle一张表的多个字段更新到另一张表中去
- 使用Spring Data Jpa 遇到 数据库字段以 from 开头,分页查询失败的问题
- 在实体类中对与记录数量的属性进行修改时,定义相关方法在实体类中,进行修改时方便
- SQL STUFF涵数使用 SQL记录接拼字段,方便让SQL行记录转换成列 很方便
- 《AndroidStudio每日一贴》5. 怎样高速查看某个方法/注解的定义?
- Joda手工改变内部定义的字段和去掉毫秒部分的信息
- spring 怎样将枚举项注入到bean的数组字段中
- objective-c 中使用了sqlite数据库。字段定义为boolean型的处理方法
- Mysql 升级到 5.6 后插入语句时间字段报错:Incorrect datetime value: '' for column 'createtime'
- 表格字段定义