JPA JAVA EE
import javax.persistence.*;@Entitypublic class MyEntity { @Id @GeneratedValue private int id; private String msg; public MyEntity() { } public MyEntity(String msg) { this.msg = msg; } @PrePersist void onPrePersist() { System.out.println("MyEntity.onPrePersist()"); } @PostPersist void onPostPersist() { System.out.println("MyEntity.onPostPersist()"); } @PostLoad void onPostLoad() { System.out.println("MyEntity.onPostLoad()"); } @PreUpdate void onPreUpdate() { System.out.println("MyEntity.onPreUpdate()"); } @PostUpdate void onPostUpdate() { System.out.println("MyEntity.onPostUpdate()"); } @PreRemove void onPreRemove() { System.out.println("MyEntity.onPreRemove()"); } @PostRemove void onPostRemove() { System.out.println("MyEntity.onPostRemove()"); } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public int getId() { return id; } public void setId(int id) { this.id = id; }}
import javax.persistence.*;import java.sql.Timestamp;import java.time.Instant;@Entitypublic class Article { @Id @GeneratedValue private int id; private String content; private Timestamp dateCreated; private Timestamp lastUpdated; @PrePersist void preCreate() { dateCreated = Timestamp.from(Instant.now()); lastUpdated = Timestamp.from(Instant.now()); } @PreUpdate void preUpdate() { lastUpdated = Timestamp.from(Instant.now()); } public String getContent() { return content; } public void setContent(String content) { this.content = content; } @Override public String toString() { return "Article{" + "id=" + id + ", content='" + content + '\'' + ", dateCreated=" + dateCreated + ", lastUpdated=" + lastUpdated + '}'; }}
import javax.persistence.*;public class MyEntityListener { @PrePersist void onPrePersist(MyEntity myEntity) { System.out.println("MyEntityListener.onPrePersist(): " + myEntity); } @PostPersist void onPostPersist(MyEntity myEntity) { System.out.println("MyEntityListener.onPostPersist(): " + myEntity); } @PostLoad void onPostLoad(MyEntity myEntity) { System.out.println("MyEntityListener.onPostLoad(): " + myEntity); } @PreUpdate void onPreUpdate(MyEntity myEntity) { System.out.println("MyEntityListener.onPreUpdate(): " + myEntity); } @PostUpdate void onPostUpdate(MyEntity myEntity) { System.out.println("MyEntityListener.onPostUpdate(): " + myEntity); } @PreRemove void onPreRemove(MyEntity myEntity) { System.out.println("MyEntityListener.onPreRemove(): " + myEntity); } @PostRemove void onPostRemove(MyEntity myEntity) { System.out.println("MyEntityListener.onPostRemove(): " + myEntity); }}
import javax.persistence.PrePersist;import javax.persistence.PreUpdate;import java.sql.Timestamp;import java.time.Instant;public class AuditableListener { @PrePersist void preCreate(Auditable auditable) { Timestamp now = Timestamp.from(Instant.now()); auditable.setDateCreated(now); auditable.setLastUpdated(now); } @PreUpdate void preUpdate(Auditable auditable) { Timestamp now = Timestamp.from(Instant.now()); auditable.setLastUpdated(now); }}