Hibernate双向多对多关联
生活随笔
收集整理的這篇文章主要介紹了
Hibernate双向多对多关联
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、配置雙向多對多關聯
以Project類(項目)和Emp類(員工)為例:
1、創建Project類,并需要定義集合類型的Emp屬性
public class Project {//編號private Integer pid;//名稱private String pname;//定義集合類型的Emp屬性private Set<Emp> emps=new HashSet<Emp>();public Integer getPid() {return pid;}public void setPid(Integer pid) {this.pid = pid;}public String getPname() {return pname;}public void setPname(String pname) {this.pname = pname;}public Set<Emp> getEmps() {return emps;}public void setEmps(Set<Emp> emps) {this.emps = emps;}2、同理 創建Emp類,并需要定義集合類型的Project屬性
public class Emp {private String empname;private Integer nid;private Set<Project> pros=new HashSet<Project>();public String getEmpname() {return empname;}public void setEmpname(String empname) {this.empname = empname;}public Integer getNid() {return nid;}public void setNid(Integer nid) {this.nid = nid;}public Set<Project> getPros() {return pros;}public void setPros(Set<Project> pros) {this.pros = pros;}}3、需建立第三張表 關聯Project和Emp各自的主鍵pid、nid
?
4、編寫Project.hbm.xml和Emp.hbm.xml小配置,并植入<set>元素中的table屬性 第三張表ProEmp 以及多對多<many-to-many>標簽 class指定類型?
Emp.hbm.xml關鍵代碼如下:
Project.hbm.xml關鍵代碼如下:
5、大配置hibernate.cfg.xml 需關聯小配置
<mapping resource="cn/happy/manytomany/Project.hbm.xml" /> <mapping resource="cn/happy/manytomany/Emp.hbm.xml" />6、測試類 Test
/** 多對多 雙向*/@Testpublic void addTest(){//創建員工對象Emp emp=new Emp();emp.setEmpname("未知");//創建工程對象Project pro=new Project();pro.setPname("花園");//將員工對象添加到工程 反之 同理pro.getEmps().add(emp);emp.getPros().add(pro);//保存session.save(pro);session.save(emp);}注:對于雙向多對多關聯,需要將其中一端inverse屬性設為True,否則違反約束條件
轉載于:https://www.cnblogs.com/hr1997/p/5833841.html
總結
以上是生活随笔為你收集整理的Hibernate双向多对多关联的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 6.8 安装TigerVN
- 下一篇: CentOS 7 安装Boost 1.6