We define two classes, one with annotations WithLifeCycleAnnotations and one without annotations NoLifeCycleAnnotations. This example operates Hibernate JPA in a standalone in-memory mode.
With annotations:
@Entity
public class WithLifeCycleAnnotations {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long ID;
private String name = "";
@PostLoad
public void postLoad() {
System.out.println("Post Load called !!!");
}
@PostPersist
public void postPersist() {
System.out.println("Post Persist called !!!");
}
@PostRemove
public void postRemove() {
System.out.println("Post Remove called !!!");
}
@PostUpdate
public void postUpdate() {
System.out.println("Post Update called !!!");
}
@PrePersist
public void prePersist() {
System.out.println("Pre Persist called !!!");
}
@PreRemove
public void preRemove() {
System.out.println("Pre Remove called !!!");
}
@PreUpdate
public void preUpdate() {
System.out.println("Pre Update called !!!");
}
// Setters & Getters...
}
NoLifeCycleAnnotations nlca = new NoLifeCycleAnnotations();
nlca.setName("AAA");
System.out.println("Saving NO lifecycle annotations");
JPA.INSTANCE.save(nlca);
System.out.println("Reading NO lifecycle annotations");
NoLifeCycleAnnotations nlcaRetr =
JPA.INSTANCE.get(NoLifeCycleAnnotations.class, nlca.getID());
System.out.println("Updating NO lifecycle annotations");
nlca.setName("BBB");
JPA.INSTANCE.update(nlca);
System.out.println("Deleting NO lifecycle annotations");
nlca.setName("BBB");
JPA.INSTANCE.delete(nlca);
WithLifeCycleAnnotations wlca = new WithLifeCycleAnnotations();
wlca.setName("AAA");
System.out.println("Saving WITH lifecycle annotations:");
JPA.INSTANCE.save(wlca);
System.out.println("Reading WITH lifecycle annotations:");
WithLifeCycleAnnotations wlcaRetr =
JPA.INSTANCE.get(WithLifeCycleAnnotations.class, wlca.getID());
System.out.println("Updating WITH lifecycle annotations:");
wlca.setName("BBB");
JPA.INSTANCE.update(wlca);
System.out.println("Deleting WITH lifecycle annotations:");
wlca.setName("BBB");
JPA.INSTANCE.delete(wlca);
Saving NO lifecycle annotations Reading NO lifecycle annotations Updating NO lifecycle annotations Deleting NO lifecycle annotations Saving WITH lifecycle annotations: Pre Persist called !!! Post Persist called !!! Reading WITH lifecycle annotations: Updating WITH lifecycle annotations: Pre Update called !!! Post Update called !!! Deleting WITH lifecycle annotations: Pre Remove called !!! Post Remove called !!
No comments:
Post a Comment