Java Tutorial/EJB3/Entity Lifecycle

Материал из Java эксперт
Перейти к: навигация, поиск

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>