如果我不想在Hibernate中使用@Generated注释,还有什么其他选择?

时间:2018-09-04 07:13:52

标签: hibernate

@Generated(GenerationTime.ALWAYS) @Column(name =“ create_date”,insertable = false,updatable = false)

2 个答案:

答案 0 :(得分:0)

您有3个选择。

ALWAYS
Indicates the value is generated on insert and on update.
INSERT
Indicates the value is generated on insert.
NEVER
Indicates the value is never generated.

答案 1 :(得分:0)

@生成的注释

GenerationTime.ALWAYS

  

GenerationTime.ALWAYS在插入时间和   更新。对于GenerationTime.ALWAYS,该属性不应   可以插入和更新。

@Generated(GenerationTime.ALWAYS)
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "modified_date", updatable = false, insertable = false)
private Date modifiedDate;

GenerationTime.INSERT

  

GenerationTime.INSERT仅在插入时更新实体。对于GenerationTime.INSERT,该属性不应   可以插入。

@Generated(GenerationTime.INSERT)
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_date", insertable = false) 
private Date createdDate;

GenerationTime.Never

  

GenerationTime.NEVER既不会在更新时间也不会在插入时间更新实体。

@Generated(GenerationTime.NEVER)

@CreationTimestamp @UpdateTimestamp

这些注释也可以用于以下每种类型:

  • java.time.LocalDate(自Hibernate 5.2.3起)
  • java.time.LocalDateTime(从Hibernate 5.2.3开始)
  • java.util.Date
  • java.util.Calendar
  • java.sql.Date
  • java.sql.Time
  • java.sql.Timestamp

    @Column
    @CreationTimestamp
    private LocalDateTime createDateTime;
    
    @Column
    @UpdateTimestamp
    private LocalDateTime updateDateTime;