JPA表關聯關係(多對一、一對多、多對多、一對一)
阿新 • • 發佈:2018-11-19
小提示:外來鍵在哪邊,那邊就是多方哦!!
單向多對一: 給多方加上 @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查詢),沒有查詢條件才使用查詢快取
⑤不用一對一,用多對一取代(不要使用共享主鍵一對一,使用唯一外來鍵一對一)
⑥靈活使用單向多對一關聯