创建自定义JPA时态注释

时间:2010-07-18 17:54:50

标签: java hibernate jpa orm

我希望JPA实体中的一些mycoulmns在插入/更新期间从数据库获取值,即从Oracle sys_context,我相信JPA时态注释包括插入/更新期间数据库生成的时间戳,我有什么方法可以创建自定义注释有点simailar到这个或在插入/更新期间提供一些默认值,如果你遇到这种情况,有人可以提供一些指示。

1 个答案:

答案 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)按设计,它有   为NEVERALWAYS