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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、前言

Hibernate 為程序員提供一種級聯操作,在編寫程序時,通過 Hibernate 的級聯功能可以很方便的操作數據庫的主從表的數據, 我們最常用的級聯是級聯保存和級聯刪除。

2、ManyToOne | OneToMany?單詞誤導

當我們去試用的時候,首先要明確級聯關系,是一對多,還是多對一,還是一對一, 明確了這一點還不夠,還要清楚是誰一對多,誰多對一,這樣才能更好地去應用上邊的這兩個注解:ManyToOne? OneToMany 記憶公式:第一個單詞就是當前實體類,To?之后的是下方要對應的實體類。

?3、舉例說明:一對多 、?多對一

高二3班的數學老師老師跟高二3班的學生 一對多:一個老師可以對應多個學生 多對一:多個學生只可對應一個老師 如果換成表、注解的話: tearch老師實體,對應的級聯操作注解就是:OneToMany @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="news") private Set<StudentBean> studentBean;

    student學生實體,對應的級聯操作注解就是:ManyToOne

@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY) @JoinColumn(name="news_id", insertable = false,updatable = false) private NewsEntity news;

4、補充

4.1、mappedBy?屬性?

mappedBy 指定關聯實體的屬性;它的值是屬性值而非數據庫中列名。

4.2、@JoinColumn 注解

可以使用 @JoinColumn 注解來替代 mappedBy 屬性,但是 @JoinColumn 的 name 屬性指定的是數據庫中的列名。

4.3、fetch=FetchType.LAZY?? ?|? ??EAGER??

參考地址:https://blog.csdn.net/u010082453/article/details/43339031 1、FetchType.LAZY:懶加載,加載一個實體時,定義懶加載的屬性不會馬上從數據庫中加載。2、FetchType.EAGER:急加載,加載一個實體時,定義急加載的屬性會立即從數據庫中加載。3、比方User類有兩個屬性,name跟address,就像百度知道,登錄后用戶名是需要顯示出來的,此屬性用到的幾率極大,要馬上到數據庫查,用急加載; 而用戶地址大多數情況下不需要顯示出來,只有在查看用戶資料是才需要顯示,需要用了才查數據庫,用懶加載就好了。所以,并不是一登錄就把用戶 的所有資料都加載到對象中,于是有了這兩種加載模式。A、實體對象的延遲加載 如果想對實體對象使用延遲加載,必須要在實體的映射配置文件中進行相應的配置,如下所示: <hibernate-mapping><class name=”com.neusoft.entity.User” table=”user” lazy=”true”>……</class> </hibernate-mapping>一般是對整個實體對象進行設置是否是懶加載,而非單個屬性。若該實體對象關聯某個對象,如下面:關聯的實體對象通常是懶加載

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例的全部內容,希望文章能夠幫你解決所遇到的問題。

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