Java Tutorial/EJB3/Entity Lifecycle
Содержание
Entity Bean Lifecycle: PostLoad
File: Customer.java
<source lang="java">
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.PostLoad; @Entity public class Customer implements java.io.Serializable {
private String firstName; private String lastName; @Id private long ssn; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; }
public long getSsn() { return ssn; } public void setSsn(long ssn) { this.ssn = ssn; }
@PostLoad public void postLoad() { System.out.println("@PostLoad"); }
}</source>
Entity Bean Lifecycle: PostPersist
File: EmployeeBean.java
<source lang="java">
import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {
@PersistenceContext(unitName="EmployeeService") private EntityManager manager; public void doAction(){ Customer cust = new Customer(); cust.setLastName("Bond"); cust.setSsn(123456789L); manager.persist(cust); System.out.println("Saved"); List<Customer> list = manager.createQuery("FROM Customer res").getResultList(); System.out.println(list.size()); }
}</source>
Entity Bean Lifecycle: PostRemove
File: Customer.java
<source lang="java">
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.PostRemove; @Entity public class Customer implements java.io.Serializable {
private String firstName; private String lastName; @Id private long ssn; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; }
public long getSsn() { return ssn; } public void setSsn(long ssn) { this.ssn = ssn; } @PostRemove public void postRemove() { System.out.println("@PostRemove"); }
}</source>
Entity Bean Lifecycle: PostUpdate
File: EmployeeBean.java
<source lang="java">
import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {
@PersistenceContext(unitName="EmployeeService") private EntityManager manager; public void doAction(){ Customer cust = new Customer(); cust.setLastName("Bond"); cust.setSsn(1L); manager.persist(cust); System.out.println("Saved"); cust = manager.find(Customer.class,1L); System.out.println(cust.getLastName()); cust.setLastName("new name"); manager.persist(cust); cust = manager.find(Customer.class,1L); System.out.println(cust.getLastName()); }
}</source>
Entity Bean Lifecycle: PrePersist
File: EmployeeBean.java
<source lang="java">
import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {
@PersistenceContext(unitName="EmployeeService") private EntityManager manager; public void doAction(){ Customer cust = new Customer(); cust.setLastName("Bond"); cust.setSsn(123456789L); manager.persist(cust); System.out.println("Saved"); List<Customer> list = manager.createQuery("FROM Customer res").getResultList(); System.out.println(list.size()); }
}</source>
Entity Bean Lifecycle: PreRemove
File: EmployeeBean.java
<source lang="java">
import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {
@PersistenceContext(unitName="EmployeeService") private EntityManager manager; public void doAction(){ Customer cust = new Customer(); cust.setLastName("Bond"); cust.setSsn(1L); manager.persist(cust); System.out.println("Saved"); cust = manager.find(Customer.class,1L); System.out.println(cust.getLastName()); cust.setLastName("new name"); manager.persist(cust); cust = manager.find(Customer.class,1L); System.out.println(cust.getLastName()); manager.remove(cust); }
}</source>
Entity Bean Lifecycle PreUpdate
File: EmployeeBean.java
<source lang="java">
import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {
@PersistenceContext(unitName="EmployeeService") private EntityManager manager; public void doAction(){ Customer cust = new Customer(); cust.setLastName("Bond"); cust.setSsn(1L); manager.persist(cust); System.out.println("Saved"); cust = manager.find(Customer.class,1L); System.out.println(cust.getLastName()); cust.setLastName("new name"); manager.persist(cust); cust = manager.find(Customer.class,1L); System.out.println(cust.getLastName()); }
}</source>