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

最佳答案

我希望JPA实体中的某些mycoulmns在插入/更新期间从数据库获取值

@Column配置为不可插入和不可更新,并使用 @Generated (Hibernate特定注释)对字段进行注释。这样,Hibernate将在插入,更新后从数据库中获取值。从参考文档中:

2.4.3.5. Generated properties

一些属性在生成
由您插入或更新时间
数据库。休眠可以处理这样的
属性并触发后续
选择以读取这些属性。

@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

关于java - 创建一个自定义的JPA时间注释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3276599/

10-11 22:25
查看更多