Hibernate物件關係是一對多好還是多對一好??為什麼

時間 2021-10-14 22:24:01

1樓:匿名使用者

一對多 和多對一 一般是看需求來確定的,很多時候都是設定成雙向的舉個最最普通的離子 :

一個班級裡面有多個學生 多個學生屬於一個班級 從學生表來看 就是多對一的關係 從班級表來看就是一對多的關係 需求上如果說是從學生表想看到班級 那麼就設定成多對一的關係 如果想從班級看到學生 就設定成一對多的關係 有的時候為了通用性 可以設定成多對一雙向關聯 關係一般有多的一端來維護 這樣可以提高效率

為什麼能提高效率呢 我舉個比較容易理解的例子就像樓上所說的那樣,班裡來了一個新老師 如果是多對一雙向,是老師記住所有同學簡單?還是每個同學記住老師簡單?很明顯 一個同學記住老師要簡單的多 維護起來也方便 因此儘量不要讓一的一方來維護關係 關係要反轉給多的一方來維護

2樓:瀋陽

比較是需要有前提的,在某一個前提下比較好壞才有意義。例如,如果從對資料庫操效能角度看的話,多對一好一些,一對多差一些。例如更新操作,一對多意味著要操作很多資料,而多對一不需要。

舉個例子,例如你的老師要管理一個班的學生,如果遇到有事情要通知大家的話,是老師給每一個學生打**好呢,還是每個學生給老師打**好問問有什麼事情好呢。如果從老師角度的話,那麼損失效能就比較多,如果從學生到老師就會好一些。這個在hibernate中通過inverse屬性來體現的。

hibernate一對多和多對一的區別

3樓:可以叫我表哥

一對多關係: 一對多關係 分為“單向一對多/多對一關係”和“雙向多

對一”關係內。

• “單向一對容多/多對一關係”只需在“一”/“多”方進行配置,• “雙向多對一關係”需要在關聯雙方均加以配置。 雙向多對一關聯就是在多方和一方都進行配置,並在“一” 方通過屬性inverse="true"設定控制關係反轉

注:單向多對一關聯是最常見的單向關聯關係。

注:雙向多對一關聯是最常見的雙向關聯關係。雙向多對一關聯實際上是“多對 一”與“一對多”關聯的組合。

4樓:匿名使用者

使用起來好像沒什麼大的區別,就是思維方式的不同,一對多反向思維多對一,用不著去死扣細節東西

5樓:小_rong丶

沒什麼區別,主要作用就是讓程式設計師區分哪個是主表,哪個是子表

6樓:等待iii希望

你老婆和你是一對一,不可能多對一(也就是你有多個老婆或者你老婆有多個老公),

你和你老闆是一對多,因為你老闆不可能只有你一個員工

hibernate 多對一,一對多,多對多, 在j**a中怎麼理解呢?

7樓:左瀟龍

首先我要告訴你,資料庫描述表之間的關係是通過外來鍵描述的,hibernate中是通過屬性描述的。

外來鍵是什麼意思?舉個例子說,資料庫中,你有個表是學生表,

我們簡單點說有三列,一個是學生的id,一個是姓名,一個是班級的id

而在資料庫中,你會建一個班級表,

其中有id和班級的名稱,比如計算機三班,二班等等。

班級和學生,班級是一,學生是多。

而在hibernate中,為了簡單起見,一般會在學生類中將班級屬性設定成一個班級類,而在班級類中額外新增一個list或者set。這麼做的好處簡單來說,是為了方便。

怎麼方便呢?

這麼說吧,比如我們沒這麼設定,而是在學生類中只有一個班級的id,那麼你查到一個學生,想看他班級的名稱,是不是還要根據班級的id,去班級表查詢對應的名字,這麼一來,就會十分麻煩,所以在hibernate中,如果表中有外來鍵,那麼一般會將這個外來鍵設定成那個表的實體類,這樣一來,我們就不需要多那一步了。

至於你說為什麼將屬性設定到班級的物件,然後儲存學生的資訊,學生表中就有班級id這個欄位的值了,這個問題,很簡單,因為你不僅把屬性儲存到班級物件中了,你肯定還把這個班級物件作為屬性設定給學生了,所以就有了。

換句話說,你等於還是間接的設定了班級id,這個欄位,具體他們的對應關係,自然是在配置檔案中顯示的。

不知道說了這麼多,你能理解不。

手痠了,,,,希望對你有幫助。。。

8樓:調和若

外來鍵就是物件。。。。

用hibernate對物件進行連表查詢,查詢到的資料怎麼

list裡面放的都是同一型別的資料兩個物件是不能放在乙個集合裡面的。 姚齊 public listgetlist string strwhere session session this.sessionfactory.opensession string hql select from tbl co...

hibernate中多對多關係如何儲存中間表其他表資料不變

可以試試用hibernate原生查詢直接用sql語句向中間表插入資料。query query session.createsqlquery insert into t stu tea stu id,tea id values query.setinteger 1,1 query.setinteger...

物件導向開發方法中,類與物件的關係是

物件是類的例項,類是物件的模板。類和物件是兩種以計算機為載體的計算機語言的合稱。物件是對客觀事物的抽象,類是對物件的抽象。類是一種抽象的資料型別。物件是通過new classname產生的,用來呼叫類的方法 類的構造方法 類是物件的抽象,而物件是類的具體例項。類是抽象的,不占用記憶體,而物件是具體的...