JPA中实现单向多对一的关联关系
生活随笔
收集整理的這篇文章主要介紹了
JPA中实现单向多对一的关联关系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
JPA入門簡介與搭建HelloWorld(附代碼下載):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937
在上面博客中搭建好JPA的HelloWorld后,只是對customer實體類完成數據庫的映射。
若要實現單向多對一的映射關系,怎樣實現。
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
數據庫中新建JPA_ORDER表
?
其中一個用戶可以有多個訂單,但是一個訂單只能屬于一個用戶,所以形成了單向多對一的關系。
訂單表中CUSTOMER_ID就是與用戶表相關聯的外鍵。
在包下新建實體類Order
package com.badao.jpa.helloworld;import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table;@Table(name="JPA_ORDERS") @Entity public class Order {private Integer id;private String orderName;private Customer customer;@GeneratedValue(strategy = GenerationType.IDENTITY)@Idpublic Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Column(name="ORDER_NAME")public String getOrderName() {return orderName;}public void setOrderName(String orderName) {this.orderName = orderName;}//映射單向 n-1 的關聯關系//使用 @ManyToOne 來映射多對一的關聯關系//使用 @JoinColumn 來映射外鍵.//可使用 @ManyToOne 的 fetch 屬性來修改默認的關聯屬性的加載策略@JoinColumn(name="CUSTOMER_ID")@ManyToOnepublic Customer getCustomer() {return customer;}public void setCustomer(Customer customer) {this.customer = customer;} }主要是通過@ManyToOne來映射多對一的關聯關系,使用@JoinColumn來映射主鍵。
然后在配置文件persistence.xml中添加實體類Order的配置
<class>com.badao.jpa.helloworld.Order</class>添加位置如下
?
繼續上面那篇博客的單元測試類。繼續進行編寫測試方法
/*** 保存多對一時, 建議先保存 1 的一端, 后保存 n 的一端, 這樣不會多出額外的 UPDATE 語句.*/@Testpublic void testManyToOnePersist(){Customer customer = new Customer();customer.setAge(18);customer.setEmail("gg@163.com");customer.setLastName("GG");Order order1 = new Order();order1.setOrderName("G-GG-1");Order order2 = new Order();order2.setOrderName("G-GG-2");//設置關聯關系order1.setCustomer(customer);order2.setCustomer(customer);//執行保存操作entityManager.persist(customer);entityManager.persist(order1);entityManager.persist(order2);}執行成功后查看數據庫
用戶表
?
訂單表
?
總結
以上是生活随笔為你收集整理的JPA中实现单向多对一的关联关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Winform中实现将照片剪贴到系统剪切
- 下一篇: JPA中实现单向一对多的关联关系