jpa 实体类中某些字段为null时,执行save操作也会将null值存入,更新时如果将数据查询出再set显得非常的鸡肋,尤其是对于createTime,updateTime这一类记录数据更没必要再次查询。
@Column(insertable = false,updatable = false)即可在save时忽略此字段,这样jpa更新插入时就不会去更新这个字段了,而是完全由数据库维护。columnDefinition和后面的设置,就等于在数据库中设置DEFAULT CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
@Entity(name="test")
@DynamicInsert
public class Test implements Serializable{
private static final long serialVersionUID = -7778115605492233123L;
@Id
@GeneratedValue
private Integer id;
@Column(name = "create_time",insertable = false,updatable = false,columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private Date createTime;
@Column(name = "update_time",insertable = false,updatable = false,columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
private Date updateTime;
}