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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JPA中实现单向多对一的关联关系

發布時間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中实现单向多对一的关联关系的全部內容,希望文章能夠幫你解決所遇到的問題。

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