diff --git a/pom.xml b/pom.xml index 6d8604ec97cd1d5d284bfeea742e602c0adba81d..d601a278abe272e6b45984782a909b3806afa0eb 100644 --- a/pom.xml +++ b/pom.xml @@ -107,6 +107,15 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.version}</version> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </path> + </annotationProcessorPaths> + </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> diff --git a/src/main/java/koz01/java2/lab10/BaseEntity.java b/src/main/java/koz01/java2/lab10/BaseEntity.java new file mode 100644 index 0000000000000000000000000000000000000000..b1ed9db3ba286351e88a02b4a860433d751d09fd --- /dev/null +++ b/src/main/java/koz01/java2/lab10/BaseEntity.java @@ -0,0 +1,21 @@ +package koz01.java2.lab10; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +import lombok.EqualsAndHashCode; +import lombok.Getter; + +@MappedSuperclass +@EqualsAndHashCode +public class BaseEntity implements Serializable { + + @Getter + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; +} diff --git a/src/main/java/koz01/java2/lab10/Clas.java b/src/main/java/koz01/java2/lab10/Clas.java new file mode 100644 index 0000000000000000000000000000000000000000..20993fffd0a25a8e3e9384d2afbb6919aca581d9 --- /dev/null +++ b/src/main/java/koz01/java2/lab10/Clas.java @@ -0,0 +1,24 @@ +package koz01.java2.lab10; + +import java.util.Set; + +import javax.persistence.Entity; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Entity +@AllArgsConstructor +@NoArgsConstructor +public class Clas extends BaseEntity { + + @Getter + @Setter + private String cname; + + @Getter + @Setter + private Set<Clas> clas; +} diff --git a/src/main/java/koz01/java2/lab10/Department.java b/src/main/java/koz01/java2/lab10/Department.java new file mode 100644 index 0000000000000000000000000000000000000000..132b6ed07fdabd04582320a0b67314bc1b32ebee --- /dev/null +++ b/src/main/java/koz01/java2/lab10/Department.java @@ -0,0 +1,24 @@ +package koz01.java2.lab10; + +import java.util.List; + +import javax.persistence.Entity; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Entity +@AllArgsConstructor +@NoArgsConstructor +public class Department extends BaseEntity { + + @Getter + @Setter + private String name; + + @Getter + @Setter + private List<Employee> employee; +} diff --git a/src/main/java/koz01/java2/lab10/Employee.java b/src/main/java/koz01/java2/lab10/Employee.java new file mode 100644 index 0000000000000000000000000000000000000000..259c167f456776c25f75a0e9ff406b52bc06c37c --- /dev/null +++ b/src/main/java/koz01/java2/lab10/Employee.java @@ -0,0 +1,35 @@ +package koz01.java2.lab10; + +import javax.persistence.Entity; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Entity +@AllArgsConstructor +@NoArgsConstructor +public class Employee extends BaseEntity { + + @Getter + @Setter + private int eid; + + @Getter + @Setter + private String ename; + + @Getter + @Setter + private double salary; + + @Getter + @Setter + private String deg; + + @Setter + @Getter + private Department department; + +} diff --git a/src/main/java/koz01/java2/lab10/NonTeachingStaff.java b/src/main/java/koz01/java2/lab10/NonTeachingStaff.java index 590ca2450887ee0c292dd441884fbade7a84fd25..59b164a093a8b8cfb44417e01b5cc233a4083d68 100644 --- a/src/main/java/koz01/java2/lab10/NonTeachingStaff.java +++ b/src/main/java/koz01/java2/lab10/NonTeachingStaff.java @@ -2,16 +2,16 @@ package koz01.java2.lab10; import javax.persistence.Entity; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; -@Data -@EqualsAndHashCode(callSuper = true) @Entity @NoArgsConstructor public class NonTeachingStaff extends Staff { + @Getter + @Setter private String areaexpertise; public NonTeachingStaff(String sname, String areaexpertise) { diff --git a/src/main/java/koz01/java2/lab10/Staff.java b/src/main/java/koz01/java2/lab10/Staff.java index 891118fda3ebac0e35174107a239a381fe70d1f8..6f09a62943a09c3d44b4b9e1bf0c4f0e8a270c52 100644 --- a/src/main/java/koz01/java2/lab10/Staff.java +++ b/src/main/java/koz01/java2/lab10/Staff.java @@ -1,24 +1,18 @@ package koz01.java2.lab10; -import java.io.Serializable; - import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import lombok.Data; +import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; -@Data @Entity @NoArgsConstructor -public class Staff implements Serializable { +public class Staff extends BaseEntity { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Integer id; + @Getter + @Setter private String sname; public Staff(String sname) { diff --git a/src/main/java/koz01/java2/lab10/Teacher.java b/src/main/java/koz01/java2/lab10/Teacher.java new file mode 100644 index 0000000000000000000000000000000000000000..ee1c35713f94d95bcf0dc5255461d05ca91e852e --- /dev/null +++ b/src/main/java/koz01/java2/lab10/Teacher.java @@ -0,0 +1,29 @@ + +package koz01.java2.lab10; + +import java.util.Set; + +import javax.persistence.Entity; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Entity +@AllArgsConstructor +@NoArgsConstructor +public class Teacher extends BaseEntity { + + @Getter + @Setter + private String tname; + + @Getter + @Setter + private String subject; + + @Getter + @Setter + private Set<Clas> clasSet; +} diff --git a/src/main/java/koz01/java2/lab10/TeachingStaff.java b/src/main/java/koz01/java2/lab10/TeachingStaff.java index 2ff0f365866a76f75629d08d9724d334003107c1..7900ce4ab8eda147d5aa3fba18f7223524422053 100644 --- a/src/main/java/koz01/java2/lab10/TeachingStaff.java +++ b/src/main/java/koz01/java2/lab10/TeachingStaff.java @@ -2,17 +2,20 @@ package koz01.java2.lab10; import javax.persistence.Entity; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; -@Data -@EqualsAndHashCode(callSuper = true) @Entity @NoArgsConstructor public class TeachingStaff extends Staff { + @Getter + @Setter private String qualification; + + @Getter + @Setter private String subjectexpertise; public TeachingStaff(String sname, String qualification, diff --git a/src/test/java/koz01/java2/lab10/DemoJPA.java b/src/test/java/koz01/java2/lab10/DemoJPA.java index 1ca86ba4df76352d00a60332c45818c51605503e..c48bb4e71d8ddf16bdecf31bdc1985ca8a0fb0e8 100644 --- a/src/test/java/koz01/java2/lab10/DemoJPA.java +++ b/src/test/java/koz01/java2/lab10/DemoJPA.java @@ -1,5 +1,10 @@ package koz01.java2.lab10; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; @@ -33,4 +38,150 @@ public class DemoJPA { entitymanager.close(); emfactory.close(); } + + @Test + public void demostrateManyToOne() { + EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( + "Eclipselink_JPA"); + 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 Employees + entitymanager.persist(employee1); + entitymanager.persist(employee2); + entitymanager.persist(employee3); + + entitymanager.getTransaction().commit(); + entitymanager.close(); + emfactory.close(); + } + + @Test + public void demostrateOneToMany() { + EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( + "Eclipselink_JPA"); + 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); + + // Create Employeelist + List<Employee> emplist = new ArrayList<>(); + emplist.add(employee1); + emplist.add(employee2); + emplist.add(employee3); + + // Create Department Entity + Department department = new Department(); + department.setName("Development"); + department.setEmployee(emplist); + + // Store Department + entitymanager.persist(department); + + entitymanager.getTransaction().commit(); + entitymanager.close(); + emfactory.close(); + } + + @Test + public void demostrateManyToMany() { + { + EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( + "Eclipselink_JPA"); + EntityManager entitymanager = emfactory.createEntityManager(); + entitymanager.getTransaction().begin(); + + // Create Clas Entity + Clas clas1 = new Clas("1st", null); + Clas clas2 = new Clas("2nd", null); + Clas clas3 = new Clas("3rd", null); + + // Store Clas + entitymanager.persist(clas1); + entitymanager.persist(clas2); + entitymanager.persist(clas3); + + // Create Clas Set1 + Set<Clas> classSet1 = new HashSet<>(); + classSet1.add(clas1); + classSet1.add(clas2); + classSet1.add(clas3); + + // Create Clas Set2 + Set<Clas> classSet2 = new HashSet<>(); + classSet2.add(clas3); + classSet2.add(clas1); + classSet2.add(clas2); + + // Create Clas Set3 + Set<Clas> classSet3 = new HashSet<>(); + classSet3.add(clas2); + classSet3.add(clas3); + classSet3.add(clas1); + + // Create Teacher Entity + Teacher teacher1 = new Teacher("Satish", "Java", classSet1); + Teacher teacher2 = new Teacher("Krishna", "Adv Java", classSet2); + Teacher teacher3 = new Teacher("Masthanvali", "DB2", classSet3); + + // Store Teacher + entitymanager.persist(teacher1); + entitymanager.persist(teacher2); + entitymanager.persist(teacher3); + + entitymanager.getTransaction().commit(); + entitymanager.close(); + emfactory.close(); + } + } }