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();
+		}
+	}
 }