Hibernate 系列教程9-自关联
生活随笔
收集整理的這篇文章主要介紹了
Hibernate 系列教程9-自关联
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自關聯:本質還是原來雙向一對多,原來要配置兩個類,現在全部都配置在一個類里面
Employee
public class Employee {private Long id;private String name;// 多對一: 多個員工對一上級private Employee manager;// 一對多:一個領導有多個下級private Set<Employee> children = new HashSet<Employee>();Employee.hbm.xml
<class name="Employee" table="t_employee"><id name="id"><generator class="native" /></id><property name="name" /><!-- private Employee manager;// 多對一: 多個員工對一上級 --><many-to-one name="manager" column="manager_id" class="Employee"/><!-- private Set<Employee> children = new HashSet<Employee>();// 一對多:一個領導有多個下級 --><set name="children" inverse="true" cascade="save-update"><key column="manager_id" /><one-to-many class="Employee" /></set></class>MainTest
public class MainTest {Session session = null;@Beforepublic void save() {session = HibernateUtils.INSTANCE.getSession();session.beginTransaction();Employee boss = new Employee("boss");Employee manager = new Employee("manager");Employee emp1 = new Employee("emp1");Employee emp2 = new Employee("emp2");manager.addEmployee(emp1).addEmployee(emp2);boss.addEmployee(manager);session.save(boss);}@Testpublic void get() {Employee boss = (Employee) session.get(Employee.class, 1L);System.out.println("boss:" + boss.getName());Set<Employee> employees = boss.getChildren();for (Employee manager : employees) {System.out.println("manager:" + manager.getName());Set<Employee> children = manager.getChildren();for (Employee employee : children) {System.out.println("employee:" + employee.getName());}}}@Afterpublic void colse() {session.getTransaction().commit();session.close();} }源碼地址
https://github.com/je-ge/hibernate
如果覺得我的文章對您有幫助,請予以打賞。您的支持將鼓勵我繼續創作!謝謝!
轉載于:https://www.cnblogs.com/je-ge/p/6105500.html
總結
以上是生活随笔為你收集整理的Hibernate 系列教程9-自关联的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 【第八章】:JavaScr
- 下一篇: js 闭包及其相关知识点理解