我希望JPA实体中的一些mycoulmns在插入/更新期间从数据库获取值,即从Oracle sys_context,我相信JPA时态注释包括插入/更新期间数据库生成的时间戳,我有什么方法可以创建自定义注释有点simailar到这个或在插入/更新期间提供一些默认值,如果你遇到这种情况,有人可以提供一些指示。
答案 0 :(得分:2)
我希望JPA实体中的一些mycoulmns在插入/更新期间从数据库中获取值
将@Column
配置为不可插入和可更新,并使用@Generated
(Hibernate特定注释)注释该字段。通过这样做,Hibernate将在插入,更新后从数据库中获取值。参考文献:
2.4.3.5. Generated properties
生成一些属性 插入或更新您的时间 数据库。 Hibernate可以处理这样的问题 属性并触发后续 选择阅读这些属性。
@Entity public class Antenna { @Id public Integer id; @Generated(GenerationTime.ALWAYS) @Column(insertable = false, updatable = false) public String longitude; @Generated(GenerationTime.INSERT) @Column(insertable = false) public String latitude; }
将您的媒体资源注释为
@Generated
你必须确保你的 可插入性或可更新性不会 与发电战略发生冲突 你已经选择。什么时候 选择GenerationTime.INSERT
, 属性不得包含可插入的 列,GenerationTime.ALWAYS
时 选择,财产不得 包含可插入的,也不可更新的 列。
@Version
属性不可以@Generated(INSERT)
按设计,它有 为NEVER
或ALWAYS
。