blob: baf42c3c488ff2f7f72e93485c458e081fab3316 [file] [log] [blame]
package example;
import java.sql.Time;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.eclipse.persistence.config.PersistenceUnitProperties;
import org.eclipse.persistence.internal.helper.SerializationHelper;
import org.eclipse.persistence.internal.jpa.EntityManagerHandle;
import junit.framework.Assert;
import model.Address;
import model.Employee;
import model.Gender;
import model.PhoneNumber;
public class SerializeEM_Example {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Map<String, String> properties = new HashMap<String, String>();
properties.put(PersistenceUnitProperties.SESSION_NAME, "employee");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("employee", properties);
EntityManager em = emf.createEntityManager();
Employee emp = new Queries().minEmployeeWithAddressAndPhones(em);
emp.setSalary(emp.getSalary() + 1);
emp.setEndTime(new Time(System.currentTimeMillis()));
emp.getPeriod().setEndDate(Calendar.getInstance());
Employee newEmp = new Employee();
newEmp.setId(666666666);
newEmp.setFirstName("Doug");
newEmp.setLastName("Clarke");
newEmp.setGender(Gender.Male);
em.persist(newEmp);
Assert.assertNotNull(em.find(Employee.class, 666666666));
EntityManagerHandle emHandle = new EntityManagerHandle(em);
EntityManagerHandle emHandle2 = (EntityManagerHandle) SerializationHelper.deserialize(SerializationHelper.serialize(emHandle));
Assert.assertNotSame(emHandle, emHandle2);
EntityManager em2 = emHandle2.getEntityManager();
Employee emp2 = em2.find(Employee.class, emp.getId());
Assert.assertNotSame(emp, emp2);
Assert.assertNotNull(em2.find(Employee.class, 666666666));
em2.getTransaction().begin();
emp2.getAddress().setPostalCode(emp2.getAddress().getPostalCode().equals("AAA111") ? "111AAA" : "AAA111");
emp2.getPhoneNumbers().size();
// Employee newEmp2 = em2.find(Employee.class, 666666666);
// newEmp2.setSalary(123456);
em2.flush();
em2.getTransaction().rollback();
em.close();
em2.close();
emf.close();
}
}