diff --git a/src/main/java/koz01/java2/lab10/BaseEntity.java b/src/main/java/koz01/java2/lab10/BaseEntity.java index b1ed9db3ba286351e88a02b4a860433d751d09fd..176191a49ddead30d5c4611e08870735ac451bf1 100644 --- a/src/main/java/koz01/java2/lab10/BaseEntity.java +++ b/src/main/java/koz01/java2/lab10/BaseEntity.java @@ -9,9 +9,11 @@ import javax.persistence.MappedSuperclass; import lombok.EqualsAndHashCode; import lombok.Getter; +import lombok.ToString; @MappedSuperclass @EqualsAndHashCode +@ToString public class BaseEntity implements Serializable { @Getter diff --git a/src/main/java/koz01/java2/lab10/Department.java b/src/main/java/koz01/java2/lab10/Department.java index 8b09f00b2c0b22532b920d378818c34f9a3ec054..8ab9522c788c397cce714224efa2835b264ba5a6 100644 --- a/src/main/java/koz01/java2/lab10/Department.java +++ b/src/main/java/koz01/java2/lab10/Department.java @@ -9,8 +9,10 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.ToString; @Entity +@ToString(callSuper = true) @AllArgsConstructor @NoArgsConstructor public class Department extends BaseEntity { diff --git a/src/main/java/koz01/java2/lab10/Employee.java b/src/main/java/koz01/java2/lab10/Employee.java index f21bdc1dd8882e128d4145d22994fc3ccf0fde38..b4b98dfa0b35a3cf6c2af02d8c5fdd7c9ce6d6af 100644 --- a/src/main/java/koz01/java2/lab10/Employee.java +++ b/src/main/java/koz01/java2/lab10/Employee.java @@ -7,16 +7,14 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.ToString; @Entity +@ToString(callSuper = true) @AllArgsConstructor @NoArgsConstructor public class Employee extends BaseEntity { - @Getter - @Setter - private int eid; - @Getter @Setter private String ename; @@ -29,6 +27,7 @@ public class Employee extends BaseEntity { @Setter private String deg; + @ToString.Exclude @Transient @Setter @Getter diff --git a/src/test/java/koz01/java2/lab10/DemoJPA.java b/src/test/java/koz01/java2/lab10/DemoJPA.java index d859bdd310779f426d8c175e05ab8154fe6107f9..deea5f3af9ff805860624ddfbeaaa398ac0cfd37 100644 --- a/src/test/java/koz01/java2/lab10/DemoJPA.java +++ b/src/test/java/koz01/java2/lab10/DemoJPA.java @@ -9,9 +9,15 @@ import java.util.Set; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; import org.junit.jupiter.api.Test; +import lombok.extern.log4j.Log4j2; + +@Log4j2 public class DemoJPA { @Test @@ -134,6 +140,67 @@ public class DemoJPA { emfactory.close(); } + @Test + public void demostrateOneToManyMapped() { + EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( + "lab10"); + EntityManager entitymanager = emfactory.createEntityManager(); + entitymanager.getTransaction().begin(); + + // Create Department Entity + Department department = new Department(); + department.setName("Development"); + + // Store Department + entitymanager.persist(department); + + // Create Employee1 Entity + Employee employee1 = new Employee(); + employee1.setEname("Satish"); + employee1.setSalary(45000.0); + employee1.setDeg("Technical Writer"); + employee1.setDepartment(department); + + // Create Employee2 Entity + Employee employee2 = new Employee(); + employee2.setEname("Krishna"); + employee2.setSalary(45000.0); + employee2.setDeg("Technical Writer"); + employee2.setDepartment(department); + + // Create Employee3 Entity + Employee employee3 = new Employee(); + employee3.setEname("Masthanvali"); + employee3.setSalary(50000.0); + employee3.setDeg("Technical Writer"); + employee3.setDepartment(department); + + // Store Employee + entitymanager.persist(employee1); + entitymanager.persist(employee2); + entitymanager.persist(employee3); + + entitymanager.getTransaction().commit(); + entitymanager.close(); + emfactory.close(); + + emfactory = Persistence.createEntityManagerFactory("lab10"); + entitymanager = emfactory.createEntityManager(); + + CriteriaBuilder cb = entitymanager.getCriteriaBuilder(); + CriteriaQuery<Department> query = entitymanager.getCriteriaBuilder() + .createQuery(Department.class); + Root<Department> root = query.from(Department.class); + + for (Department res : entitymanager.createQuery(query.select(root).where(cb + .like(root.get(Department_.name), "dep"))) + .getResultList()) + { + + log.info("dep = {}, dep.employee = {}", res, res.getEmployee()); + } + } + @Test public void demostrateManyToMany() { @@ -188,5 +255,38 @@ public class DemoJPA { public void demonstrateCriterie() { + EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( + "lab10"); + EntityManager entitymanager = emfactory.createEntityManager(); + entitymanager.getTransaction().begin(); + + // Create Employee1 Entity + Employee employee1 = new Employee(); + employee1.setEname("Satish"); + employee1.setSalary(45000.0); + employee1.setDeg("Technical Writer"); + + // Create Employee2 Entity + Employee employee2 = new Employee(); + employee2.setEname("Krishna"); + employee2.setSalary(45000.0); + employee2.setDeg("Technical Writer"); + + // Create Employee3 Entity + Employee employee3 = new Employee(); + employee3.setEname("Masthanvali"); + employee3.setSalary(50000.0); + employee3.setDeg("Technical Writer"); + + // Store Employee + entitymanager.persist(employee1); + entitymanager.persist(employee2); + entitymanager.persist(employee3); + entitymanager.getTransaction().commit(); + + + entitymanager.close(); + emfactory.close(); + } }