加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JPA上次更新时间戳

发布时间:2020-12-15 00:27:28 所属栏目:Java 来源:网络整理
导读:我正在玩JPA( Eclipselink是具体的).以下实体有一个 每当该实体上次更新时,应该反映的时间戳. 每次自动更新JPA时间戳的策略是什么? 这个实体改变了? 如果我还想要一个“创建”时间戳,那么我该怎么办?只有当实体第一次被持久化时才设置,再也不能再被修改了
我正在玩JPA( Eclipselink是具体的).以下实体有一个
每当该实体上次更新时,应该反映的时间戳.

每次自动更新JPA时间戳的策略是什么?
这个实体改变了?

如果我还想要一个“创建”时间戳,那么我该怎么办?只有当实体第一次被持久化时才设置,再也不能再被修改了?

@Entity
 public class Item implements Serializable {
     private static final long serialVersionUID = 1L;
     private Integer id;
     private String note;


    public Item () {
    }


    @Id
    @GeneratedValue(strategy=SEQUENCE)
    @Column(unique=true,nullable=false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }


    @Column(length=255)
    @Column(nullable=false)
    public String getNote() {
        return this.note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    @Column(nullable=false)
    public Timestamp getUpdated() {
        return this.updated;
    }

    public void setUpdated(Timestamp updated) {
        this.updated = updated;
    }


}

解决方法

使用 @PrePersist和 @PreUpdate注释,并编写自己的事件监听器.

看看this answer的细节.它被标记为Hibernate,但适用于任何JPA提供商.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读