many2many实际上是一个集合组件对应集合组件的特殊hibernate配置
运行类
@Test
public void test_many2many_save() {
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Empl em1 = new Empl();
em1.setEmp_name("林泽森");
Empl em2 = new Empl();
em2.setEmp_name("林允儿");
Empl em3 = new Empl();
em3.setEmp_name("洛洛");
Product pro1 = new Product();
pro1.setPro_name("图书馆管理系统");
Product pro2 = new Product();
pro2.setPro_name("oa系统");
pro1.getEmpls().add(em1);
pro1.getEmpls().add(em2);
pro2.getEmpls().add(em3);
pro2.getEmpls().add(em1);
session.save(pro1);
session.save(pro2);
tx.commit();
session.close();
}
员工类
private int emp_id;
private String emp_name;
private Set<Product> pro=new HashSet<Product>();
项目类
private int pro_id;
private String pro_name;
private Set<Empl> empls=new HashSet<Empl>();
员工配置
<set name="pro" table="pro_eml">//员工对应的项目集合组件
<key column="emp_id1" ></key>
<many-to-many class="Product" column="pro_id1"></many-to-many>
</set>
项目配置
<set name="empls" table="pro_eml" cascade="all">//因为项目类去包含员工类,所以项目类成为了控制类 pro1.getEmpls().add(em1);
<key column="pro_id1"></key>
<many-to-many class="Empl" column="emp_id1"></many-to-many>
</set>