package study.jpa.lifecycle;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.ExcludeDefaultListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PostLoad;
@ExcludeDefaultListeners // does not use the default listeners
@EntityListeners({CatLifecycleCallback.class}) // reuse the callback defined in another class
@Entity
public class Cat {
@Id
@GeneratedValue
private int id;
private String name;
private String toy;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getToy() {
return toy;
}
public void setToy(String toy) {
this.toy = toy;
}
public String toString() {
return id + " - " + name;
}
/* method that will be called when Loaded, Merged, Persisted, Refreshed or Removed */
@PostLoad
public void postLoad() {
System.out.println("A cat was loaded: " + this);
}
}