Java EntityManager合并和@PrePersist

Java EntityManager合并和@PrePersist,java,entity,entitymanager,Java,Entity,Entitymanager,我使用这一行来合并: partner = em.merge(partner); 这是在我的实体中: @PrePersist public void updateModificationDate(){ this.lastModificationDate = new Date(); } 如你所见,我想了解实体上次更改的时间 但是这个方法从来没有被调用过 有人知道我能做什么吗?你可以阅读并发现为什么不叫预科生。另外,我认为您可以使用@Version注释来保留实体的最后修改日期。您可以阅读并

我使用这一行来合并:

partner = em.merge(partner);
这是在我的实体中:

@PrePersist
public void updateModificationDate(){
    this.lastModificationDate = new Date();
}
如你所见,我想了解实体上次更改的时间

但是这个方法从来没有被调用过


有人知道我能做什么吗?

你可以阅读并发现为什么不叫预科生。另外,我认为您可以使用
@Version
注释来保留实体的最后修改日期。

您可以阅读并发现为什么不调用Preperist。此外,我认为您可以使用
@Version
注释来保留实体的上次修改日期。

您可以向实体添加以下注释:

@EntityListeners(SaveOrUpdateDateListener.class)
实际上,听众应该是:

public class SaveOrUpdateDateListener {

    @PrePersist
    @PreUpdate
    public void setDate(final CertApplication entity) {
        final Date now = new Date();
        entity.setUpdated(now);
    }
}

可以将以下注释添加到实体中:

@EntityListeners(SaveOrUpdateDateListener.class)
实际上,听众应该是:

public class SaveOrUpdateDateListener {

    @PrePersist
    @PreUpdate
    public void setDate(final CertApplication entity) {
        final Date now = new Date();
        entity.setUpdated(now);
    }
}

尝试强制em.flush(),但我不确定强制刷新是否是一种好做法。

尝试强制em.flush(),但我不确定强制刷新是否是一种好做法。

但我想使用日期作为lostmodificationdate。我如何解决这个问题?可以这样使用日期:
@Version@Temporal(TemporalType.TIMESTAMP)@Column(name=“UPD\u ON”,nullable=false)private Date updateon但我想使用日期作为lostmodificationdate。我如何解决这个问题?可以这样使用日期:
@Version@Temporal(TemporalType.TIMESTAMP)@Column(name=“UPD\u ON”,nullable=false)private Date updateon