Вы можете посмотреть в JPA EntityListeners, которые могут войти в JPA жизненный цикл.
Вы можете аннотировать lifecycle callback methods в том же классе, как показано ниже
Использование методов жизненного цикла обратного вызова
@Entity
public class Employee {
@TableGenerator(name = "employee_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", allocationSize = 1,table="id_gen")
@Id
@GeneratedValue(generator = "employee_gen", strategy = GenerationType.TABLE)
private int idEmployee;
private String firstName;
private String lastName;
private int salary;
public int getIdEmployee() {
return idEmployee;
}
public void setIdEmployee(int idEmployee) {
this.idEmployee = idEmployee;
}
// gettrs and setters
@PrePersist
public void methodInvokedBeforePersist() {
System.out.println("Invoked before persisting employee");
}
@PostPersist
public void methodInvokedAfterPersist() {
System.out.println("Invoked after persisting employee");
}
@PreUpdate
public void methodInvokedBeforeUpdate() {
System.out.println("Invoked before updating employee");
}
@PostUpdate
public void methodInvokedAfterUpdate() {
System.out.println("Invoked after updating employee");
}
@PreRemove
public void methodInvokedBeforeRemove() {
System.out.println("Invoked before removing employee");
}
@PostRemove
public void methodInvokedAfterRemove() {
System.out.println("Invoked after removing employee");
}
}
Использование отдельных классов EntityListener Рассматривают у вас есть объект Employee, для которого вы хотите слушать его жизненный цикл
@Entity
@EntityListeners(EmployeeLoggingListener.class)
public class Employee{...}
и EmployeeLoggingListerner выглядит следующим образом
public class EmployeeLoggerListener {
@PrePersist
public void methodInvokedBeforePersist(Employee emp) {
System.out.println("persisting employee with id = " + emp.getIdEmployee());
}
@PostPersist
public void methodInvokedAfterPersist(Employee emp) {
System.out.println("Persisted employee with id = " + emp.getIdEmployee());
}
@PreUpdate
public void methodInvokedBeforeUpdate(Employee emp) {
System.out.println("Updating employee with id = " + emp.getIdEmployee());
}
@PostUpdate
public void methodInvokedAfterUpdate(Employee emp) {
System.out.println("Updated employee with id = " + emp.getIdEmployee());
}
@PreRemove
private void methodInvokedBeforeRemove(Employee emp) {
System.out.println("Removing employee with id = " + emp.getIdEmployee());
}
@PostRemove
public void methodInvokedAfterRemove(Employee emp) {
System.out.println("Removed employee with id = " + emp.getIdEmployee());
}
}
являются JPA сущности? –
да они JPA лица – membersound