/** * Create a POJO having non-string map-keys */ private Company buildCompany () { Company co = new Company (); HashMap<EmployeeId, EmployeeInfo> employees = new HashMap<>(); co.setEmployees(employees); employees.put(new EmployeeId(1), new EmployeeInfo("Foo")); employees.put(new EmployeeId(2), new EmployeeInfo("Bar")); return co; }
doInJPA(entityManager -> { Employee employee = new Employee(); employee.setId(new EmployeeId(1L, 100L)); employee.setName("Vlad Mihalcea"); entityManager.persist(employee); }); doInJPA(entityManager -> { Employee employee = entityManager.find(Employee.class, new EmployeeId(1L, 100L)); EmployeeDetails employeeDetails = new EmployeeDetails(); employeeDetails.setEmployee(employee); employeeDetails.setDetails("High-Performance Java Persistence"); entityManager.persist(employeeDetails); }); doInJPA(entityManager -> { EmployeeDetails employeeDetails = entityManager.find(EmployeeDetails.class, new EmployeeId(1L, 100L)); assertNotNull(employeeDetails); }); doInJPA(entityManager -> { Phone phone = entityManager.find(Phone.class, "012-345-6789"); assertNotNull(phone); assertEquals(new EmployeeId(1L, 100L), phone.getEmployee().getId()); });
this.id = new EmployeeId(); this.id.setId(id); this.manager = new EmployeeId(); this.manager.setId(manager.getId());
static EntityManagerFactory emf; static EntityManager em; public static void main(String[] args) { emf = Persistence.createEntityManagerFactory("unit"); em = emf.createEntityManager(); Employee manager = new Employee(); manager.setId(new EmployeeId(1, 1)); Employee e1 = new Employee(); e1.setId(new EmployeeId(1,2)); e1.setManager(manager); em.getTransaction().begin(); em.persist(manager); em.persist(e1); em.getTransaction().commit(); Employee e2 = em.find(Employee.class, new EmployeeId(1, 2)); System.out.println(e2.getManager().getId().getId1() + "-" + e2.getManager().getId().getId2()); // prints 1-1 }