Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                1、前言
Hibernate 為程序員提供一種級(jí)聯(lián)操作,在編寫(xiě)程序時(shí),通過(guò) Hibernate 的級(jí)聯(lián)功能可以很方便的操作數(shù)據(jù)庫(kù)的主從表的數(shù)據(jù), 我們最常用的級(jí)聯(lián)是級(jí)聯(lián)保存和級(jí)聯(lián)刪除。2、ManyToOne | OneToMany?單詞誤導(dǎo)
當(dāng)我們?nèi)ピ囉玫臅r(shí)候,首先要明確級(jí)聯(lián)關(guān)系,是一對(duì)多,還是多對(duì)一,還是一對(duì)一, 明確了這一點(diǎn)還不夠,還要清楚是誰(shuí)一對(duì)多,誰(shuí)多對(duì)一,這樣才能更好地去應(yīng)用上邊的這兩個(gè)注解:ManyToOne? OneToMany 記憶公式:第一個(gè)單詞就是當(dāng)前實(shí)體類(lèi),To?之后的是下方要對(duì)應(yīng)的實(shí)體類(lèi)。?3、舉例說(shuō)明:一對(duì)多 、?多對(duì)一
高二3班的數(shù)學(xué)老師老師跟高二3班的學(xué)生 一對(duì)多:一個(gè)老師可以對(duì)應(yīng)多個(gè)學(xué)生 多對(duì)一:多個(gè)學(xué)生只可對(duì)應(yīng)一個(gè)老師 如果換成表、注解的話: tearch老師實(shí)體,對(duì)應(yīng)的級(jí)聯(lián)操作注解就是:OneToMany @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="news") private Set<StudentBean> studentBean;student學(xué)生實(shí)體,對(duì)應(yīng)的級(jí)聯(lián)操作注解就是:ManyToOne
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY) @JoinColumn(name="news_id", insertable = false,updatable = false) private NewsEntity news;4、補(bǔ)充
4.1、mappedBy?屬性?
mappedBy 指定關(guān)聯(lián)實(shí)體的屬性;它的值是屬性值而非數(shù)據(jù)庫(kù)中列名。4.2、@JoinColumn 注解
可以使用 @JoinColumn 注解來(lái)替代 mappedBy 屬性,但是 @JoinColumn 的 name 屬性指定的是數(shù)據(jù)庫(kù)中的列名。4.3、fetch=FetchType.LAZY?? ?|? ??EAGER??
參考地址:https://blog.csdn.net/u010082453/article/details/43339031 1、FetchType.LAZY:懶加載,加載一個(gè)實(shí)體時(shí),定義懶加載的屬性不會(huì)馬上從數(shù)據(jù)庫(kù)中加載。2、FetchType.EAGER:急加載,加載一個(gè)實(shí)體時(shí),定義急加載的屬性會(huì)立即從數(shù)據(jù)庫(kù)中加載。3、比方User類(lèi)有兩個(gè)屬性,name跟address,就像百度知道,登錄后用戶(hù)名是需要顯示出來(lái)的,此屬性用到的幾率極大,要馬上到數(shù)據(jù)庫(kù)查,用急加載; 而用戶(hù)地址大多數(shù)情況下不需要顯示出來(lái),只有在查看用戶(hù)資料是才需要顯示,需要用了才查數(shù)據(jù)庫(kù),用懶加載就好了。所以,并不是一登錄就把用戶(hù) 的所有資料都加載到對(duì)象中,于是有了這兩種加載模式。A、實(shí)體對(duì)象的延遲加載 如果想對(duì)實(shí)體對(duì)象使用延遲加載,必須要在實(shí)體的映射配置文件中進(jìn)行相應(yīng)的配置,如下所示: <hibernate-mapping><class name=”com.neusoft.entity.User” table=”user” lazy=”true”>……</class> </hibernate-mapping>一般是對(duì)整個(gè)實(shí)體對(duì)象進(jìn)行設(shè)置是否是懶加載,而非單個(gè)屬性。若該實(shí)體對(duì)象關(guān)聯(lián)某個(gè)對(duì)象,如下面:關(guān)聯(lián)的實(shí)體對(duì)象通常是懶加載?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: mp4文件如何转换为webm格式
 - 下一篇: java笔试题算法题,吐血整理