日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JPA关系映射之one-to-many和many-to-one

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JPA关系映射之one-to-many和many-to-one 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

one-to-many(一對多)和many-to-one(多對一)雙向關聯

假設部門與員工是一對多關系,反過來員工與部門就是多對一關系。

Dept.java類

1 public class Dept implements java.io.Serializable { 2 3 // Fields 4 5 private Integer deptId; 6 private String deptName; 7 private Set<Emp> emps=new HashSet<Emp>(); 8 9 // Constructors 10 11 /** default constructor */ 12 public Dept() { 13 } 14 15 /** full constructor */ 16 public Dept(String deptName) { 17 this.deptName = deptName; 18 } 19 20 // Property accessors 21 22 public Integer getDeptId() { 23 return this.deptId; 24 } 25 26 public void setDeptId(Integer deptId) { 27 this.deptId = deptId; 28 } 29 30 public String getDeptName() { 31 return this.deptName; 32 } 33 34 public void setDeptName(String deptName) { 35 this.deptName = deptName; 36 } 37 38 public Set<Emp> getEmps() { 39 return emps; 40 } 41 42 public void setEmps(Set<Emp> emps) { 43 this.emps = emps; 44 } 45 46 }

Emp.java類

1 public class Emp implements java.io.Serializable { 2 3 // Fields 4 5 private Integer empNo; 6 private String empName; 7 private Date empBrithday; 8 private Dept dept; 9 10 // Constructors 11 12 /** default constructor */ 13 public Emp() { 14 } 15 16 /** full constructor */ 17 public Emp(String empName, Date empBrithday) { 18 this.empName = empName; 19 this.empBrithday = empBrithday; 20 } 21 22 // Property accessors 23 24 public Integer getEmpNo() { 25 return this.empNo; 26 } 27 28 public void setEmpNo(Integer empNo) { 29 this.empNo = empNo; 30 } 31 32 public String getEmpName() { 33 return this.empName; 34 } 35 36 public void setEmpName(String empName) { 37 this.empName = empName; 38 } 39 40 public Date getEmpBrithday() { 41 return this.empBrithday; 42 } 43 44 public void setEmpBrithday(Date empBrithday) { 45 this.empBrithday = empBrithday; 46 } 47 48 public Dept getDept() { 49 return dept; 50 } 51 52 public void setDept(Dept dept) { 53 this.dept = dept; 54 } 55 56 }

Dept.hbm.xml

1 <hibernate-mapping> 2 <class name="com.db.entity.Dept" table="dept" catalog="mydb"> 3 <id name="deptId" type="java.lang.Integer"> 4 <column name="deptId" /> 5 <generator class="native" /> 6 </id> 7 <property name="deptName" type="java.lang.String"> 8 <column name="deptName" length="32" /> 9 </property> 10 <set name="emps" inverse="true" cascade="all"> 11 <key column="deptId" not-null="true" /> 12 <one-to-many class="com.db.entity.Emp" /> 13 </set> 14 </class> 15 </hibernate-mapping>

Emp.hbm.xml

1 <hibernate-mapping> 2 <class name="com.db.entity.Emp" table="emp" catalog="mydb"> 3 <id name="empNo" type="java.lang.Integer"> 4 <column name="empNo" /> 5 <generator class="native" /> 6 </id> 7 <property name="empName" type="java.lang.String"> 8 <column name="empName" length="20" /> 9 </property> 10 <property name="empBrithday" type="java.util.Date"> 11 <column name="empBrithday"/> 12 </property> 13 <many-to-one name="dept" column="deptId" class="com.db.entity.Dept" not-null="true" fetch="select" cascade="save-update,delete"/> 14 </class> 15 </hibernate-mapping>

hibernate.cfg.xml

1 <hibernate-configuration> 2 3 <session-factory> 4 <property name="dialect"> 5 org.hibernate.dialect.MySQLDialect 6 </property> 7 <property name="connection.url"> 8 jdbc:mysql://localhost:3306/mydb 9 </property> 10 <property name="connection.username">root</property> 11 <property name="connection.password">123456</property> 12 <property name="connection.driver_class"> 13 com.mysql.jdbc.Driver 14 </property> 15 <property name="myeclipse.connection.profile"> 16 MyDBAccount 17 </property> 18 <mapping resource="com/db/entity/Dept.hbm.xml" /> 19 <mapping resource="com/db/entity/Emp.hbm.xml" /> 20 </session-factory> 21 22 </hibernate-configuration>

測試用例

1 public class TestOneMany { 2 3 public static void main(String[] args) throws ParseException { 4 // TODO Auto-generated method stub 5 6 Session session=HibernateSessionFactory.getSession(); 7 Dept dept1=new Dept(); 8 dept1.setDeptName("開發部"); 9 Emp emp1=new Emp(); 10 emp1.setEmpName("王洋"); 11 String brithString="1999-03-05"; 12 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 13 Date brithday=sdf.parse(brithString); 14 emp1.setEmpBrithday(brithday); 15 Emp emp2=new Emp(); 16 emp2.setEmpName("李林"); 17 brithString="2005-02-07"; 18 brithday=sdf.parse(brithString); 19 emp2.setEmpBrithday(brithday); 20 //把emp和dpt分別添加到對方的實力對象中 21 dept1.getEmps().add(emp1); 22 dept1.getEmps().add(emp2); 23 emp1.setDept(dept1); 24 emp2.setDept(dept1); 25 session.beginTransaction(); 26 session.save(dept1); 27 session.getTransaction().commit(); 28 } 29 30 }

?注意:

在一的set配置中聲明inverse=“true”,意味著Dept不在作為主控方,將關聯關系的維護工作交給關聯對象Emp來完成。在保存dept1對象的時不在關心Emp類中dept屬性對應的deptId列,必須由Emp自己去維護,即設置emp.setDept(dept) ?

上述操作完成的sql語句是:

Hibernate: insert into mydb.dept (deptName) values (?)
Hibernate: insert into mydb.emp (empName, empBrithday, deptId) values (?, ?, ?)
Hibernate: insert into mydb.emp (empName, empBrithday, deptId) values (?, ?, ?)

轉載于:https://www.cnblogs.com/SaraMoring/p/5631429.html

總結

以上是生活随笔為你收集整理的JPA关系映射之one-to-many和many-to-one的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www国产精品视频 | 啪啪在线视频 | 五月婷婷丁香网 | 日韩无码精品一区二区三区 | 谁有免费的黄色网址 | 久久久久极品 | 无码国产精品久久一区免费 | 999精品视频| 自拍偷拍视频在线观看 | 国产成人 综合 亚洲 | 国产在线一区二 | 亚洲手机看片 | 真实的国产乱xxxx在线91 | 亚洲自拍网站 | 天天干夜夜拍 | 国产三级aaa | 成年人免费在线视频 | 亚洲人人在线 | 捆绑束缚调教 | 麻豆自拍视频 | 亚洲黄色一级 | 欧美另类z0zx974 | 国产精品偷伦视频免费观看了 | 国产a级大片| 国产精品一区二区三区在线免费观看 | 中文字幕一区二区三区夫目前犯 | 久久夜色精品国产欧美乱 | 蜜桃久久久久久久 | 久久久久久久久黄色 | av日韩高清| 国产精品999999 | 久久一区二 | 少妇精品一区二区 | 亚洲精品国产欧美在线观看 | 亚洲自拍在线观看 | 国产69精品久久久久777 | 国产露脸91国语对白 | 在线观看成年人视频 | 青青草原影视 | 日韩在线电影一区 | 久久久久国产精品夜夜夜夜夜 | 91国产视频在线观看 | 亚洲成人不卡 | 青青草公开视频 | 在线观看毛片av | 午夜激情综合网 | 337p粉嫩色噜噜噜大肥臀 | 日韩精品视频免费在线观看 | 日本女优中文字幕 | 一级淫片在线观看 | 交做爰xxxⅹ性爽 | 午夜美女在线 | 动漫涩涩免费网站在线看 | 黄色免费网站观看 | 亚欧成人精品一区二区 | 中文字幕视频网 | 久久免费视频播放 | 日韩成人av片 | 天堂v在线观看 | 白嫩初高中害羞小美女 | 国产成人精品一区二区三区福利 | 污污在线看 | 深夜视频一区二区三区 | 欧美日韩一区在线观看 | 亚洲aaaaaa | 亚洲一区二区三区免费 | 国产黄色片在线播放 | 狠狠操天天操夜夜操 | 黄色一级片免费观看 | 免费裸体视频网站 | 精品国产www | 日皮视频免费观看 | 自拍偷拍21p | 六月婷婷综合网 | 人体写真 福利视频 | 日本道在线观看 | 爱爱精品 | 苏晴忘穿内裤坐公交车被揉到视频 | 国产免费毛卡片 | 精品人妻少妇嫩草av无码专区 | www.97超碰| 亚洲同性gay激情无套 | 国产巨乳在线观看 | 国语久久| 亚洲成人第一页 | 免费av小说 | 神马午夜嘿嘿 | 欧美一级在线免费观看 | 亚洲欧美日韩国产 | 91人人看| 黄色一级免费视频 | 亚洲一区二区三区四区不卡 | 一级黄色大片免费看 | 阿v视频在线免费观看 | 欧美日韩另类视频 | 日韩欧美亚洲综合 | 天天操天天爽天天干 | 久久精品一二区 | 日本三级中文字幕在线观看 |