diff --git a/src/main/java/koz01/java2/lab10/Clas.java b/src/main/java/koz01/java2/lab10/Clas.java
index bd20f7d41c62001c65206dd96d226a8f40f723c2..5de9356691d713cd72870e2f6487ea575ca43779 100644
--- a/src/main/java/koz01/java2/lab10/Clas.java
+++ b/src/main/java/koz01/java2/lab10/Clas.java
@@ -3,7 +3,7 @@ package koz01.java2.lab10;
 import java.util.Set;
 
 import javax.persistence.Entity;
-import javax.persistence.Transient;
+import javax.persistence.ManyToMany;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -19,8 +19,8 @@ public class Clas extends BaseEntity {
 	@Setter
 	private String cname;
 
-	@Transient
+	@ManyToMany(targetEntity = Teacher.class, mappedBy = "clas")
 	@Getter
 	@Setter
-	private Set<Clas> clas;
+	private Set<Teacher> teacher;
 }
diff --git a/src/main/java/koz01/java2/lab10/Department.java b/src/main/java/koz01/java2/lab10/Department.java
index 8b09f00b2c0b22532b920d378818c34f9a3ec054..cbe640423c745a69c41d08f337dcbfd218e4d6f8 100644
--- a/src/main/java/koz01/java2/lab10/Department.java
+++ b/src/main/java/koz01/java2/lab10/Department.java
@@ -2,8 +2,9 @@ package koz01.java2.lab10;
 
 import java.util.List;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Entity;
-import javax.persistence.Transient;
+import javax.persistence.OneToMany;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -19,7 +20,8 @@ public class Department extends BaseEntity {
 	@Setter
 	private String name;
 
-	@Transient
+	@OneToMany(targetEntity = Employee.class, mappedBy = "department",
+		cascade = CascadeType.PERSIST)
 	@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
index f21bdc1dd8882e128d4145d22994fc3ccf0fde38..9ea9541f5e6a6d46db585cd064699aa980cc275d 100644
--- a/src/main/java/koz01/java2/lab10/Employee.java
+++ b/src/main/java/koz01/java2/lab10/Employee.java
@@ -1,7 +1,7 @@
 package koz01.java2.lab10;
 
 import javax.persistence.Entity;
-import javax.persistence.Transient;
+import javax.persistence.ManyToOne;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -29,7 +29,7 @@ public class Employee extends BaseEntity {
 	@Setter
 	private String deg;
 
-	@Transient
+	@ManyToOne
 	@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 59b164a093a8b8cfb44417e01b5cc233a4083d68..7389f1af41896d05267323f47580560d0149ea3f 100644
--- a/src/main/java/koz01/java2/lab10/NonTeachingStaff.java
+++ b/src/main/java/koz01/java2/lab10/NonTeachingStaff.java
@@ -1,6 +1,7 @@
 package koz01.java2.lab10;
 
 import javax.persistence.Entity;
+import javax.persistence.PrimaryKeyJoinColumn;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -8,6 +9,7 @@ import lombok.Setter;
 
 @Entity
 @NoArgsConstructor
+@PrimaryKeyJoinColumn(referencedColumnName = "id")
 public class NonTeachingStaff extends Staff {
 
 	@Getter
diff --git a/src/main/java/koz01/java2/lab10/Staff.java b/src/main/java/koz01/java2/lab10/Staff.java
index 6f09a62943a09c3d44b4b9e1bf0c4f0e8a270c52..87e37283b36817a87478e988b7f6b9e02a5466d4 100644
--- a/src/main/java/koz01/java2/lab10/Staff.java
+++ b/src/main/java/koz01/java2/lab10/Staff.java
@@ -1,12 +1,15 @@
 package koz01.java2.lab10;
 
 import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 @Entity
+@Inheritance(strategy = InheritanceType.JOINED)
 @NoArgsConstructor
 public class Staff extends BaseEntity {
 
diff --git a/src/main/java/koz01/java2/lab10/Teacher.java b/src/main/java/koz01/java2/lab10/Teacher.java
index 1c67bac5f2ecf94305c3a36a1670d5bfb997bf24..811cbd7f76b0773b22fa7c1cb6d21dd6620ebc15 100644
--- a/src/main/java/koz01/java2/lab10/Teacher.java
+++ b/src/main/java/koz01/java2/lab10/Teacher.java
@@ -4,7 +4,7 @@ package koz01.java2.lab10;
 import java.util.Set;
 
 import javax.persistence.Entity;
-import javax.persistence.Transient;
+import javax.persistence.ManyToMany;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -24,8 +24,8 @@ public class Teacher extends BaseEntity {
 	@Setter
 	private String subject;
 
-	@Transient
+	@ManyToMany(targetEntity = Clas.class)
 	@Getter
 	@Setter
-	private Set<Clas> clasSet;
+	private Set<Clas> clas;
 }
diff --git a/src/main/java/koz01/java2/lab10/TeachingStaff.java b/src/main/java/koz01/java2/lab10/TeachingStaff.java
index 7900ce4ab8eda147d5aa3fba18f7223524422053..a7af2b27b9d82f3c30617035661f6c6de02b02d5 100644
--- a/src/main/java/koz01/java2/lab10/TeachingStaff.java
+++ b/src/main/java/koz01/java2/lab10/TeachingStaff.java
@@ -1,12 +1,14 @@
 package koz01.java2.lab10;
 
 import javax.persistence.Entity;
+import javax.persistence.PrimaryKeyJoinColumn;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 @Entity
+@PrimaryKeyJoinColumn(referencedColumnName = "id")
 @NoArgsConstructor
 public class TeachingStaff extends Staff {
 
diff --git a/src/test/java/koz01/java2/lab10/DemoJPA.java b/src/test/java/koz01/java2/lab10/DemoJPA.java
index d859bdd310779f426d8c175e05ab8154fe6107f9..e5fd60ac5463c68268cd30ddd4f94532d8651bfc 100644
--- a/src/test/java/koz01/java2/lab10/DemoJPA.java
+++ b/src/test/java/koz01/java2/lab10/DemoJPA.java
@@ -3,6 +3,7 @@ package koz01.java2.lab10;
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -12,6 +13,9 @@ import javax.persistence.Persistence;
 
 import org.junit.jupiter.api.Test;
 
+import lombok.extern.log4j.Log4j2;
+
+@Log4j2
 public class DemoJPA {
 
 	@Test
@@ -83,6 +87,16 @@ public class DemoJPA {
 		entitymanager.getTransaction().commit();
 		entitymanager.close();
 		emfactory.close();
+
+		emfactory = Persistence.createEntityManagerFactory("lab10");
+		entitymanager = emfactory.createEntityManager();
+		Iterator<?> result = entitymanager.createQuery("select d from Department d")
+			.getResultList().iterator();
+		while (result.hasNext()) {
+			Department d = (Department) result.next();
+
+			log.info("d.employee {}", d.getEmployee());
+		}
 	}
 
 	@Test