JPA(3) 表關聯關係(多對一、一對多、多對多、一對一)

鄭清發表於2018-11-15

小提示:外來鍵在哪邊,那邊就是多方哦!!

單向多對一:   給多方加上 @ManyToOne

ex:【產品類Product--多方 ,產品分類ProductDir--一方】


單向一對多給一方加上 @OneToMany

ex:【產品類Product--多方 ,產品分類ProductDir--一方】


雙向多對一、一對多:   給多方加上 @ManyToOne,給一方加上 @OneToMany

ex:【部門類Department--一方 ,員工類Employee--多方】


多對多:有中間表的就是多對多

ex:【多個teacher,多個student】

單向多對多  -->給其中一個多方加 @ManyToMany

雙向多對多2個多方都加 @ManyToMany


一對一: 加上  @OneToOne

ex:【一個qq號對應一個qq空間】    (下面是唯一外來鍵一對一)

如何優化JPA??
  ①使用雙向一對多關聯,不使用單向一對多
  ②表欄位要少,表關聯不要怕多,有二級快取撐腰,設計表儘量達到第三方式
  ③組合關係集合使用list(順序,重複),多對多集合使用set
  ④配置物件二級快取,不使用集合二級快取,如果使用了集合二級快取,集合裡面的物件也必須二級快取;查詢快取(jpql查詢),沒有查詢條件才使用查詢快取
  ⑤不用一對一,用多對一取代(不要使用共享主鍵一對一,使用唯一外來鍵一對一)
  ⑥靈活使用單向多對一關聯

 

相關文章