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

時間 2021-10-14 22:23:54

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複合主鍵一對多怎麼關聯

愛槍就要打槍 你可以進行反向生成,看看生成的配置檔案裡怎麼寫的 hibernate 中多對一對映 一的為複合主鍵 給你個示例 你根據你的類及表來改下就行 在多的一方,即class一方寫 在一的一方,即teacher一方寫 hibernate如何查詢多表和複合主鍵的資料? 好吧,其實是這樣的。hql語...

SQL server是不是物件關聯式資料庫

sql server是物件關聯式資料庫這句話描述不準確,應該是sql server是由microsoft開發和推廣的關聯式資料庫管理系統 dbms 歷史 sql server最初是由microsoft sybase和ashton tate三家公司共同開發的,並於1988年推出了第一個os 2版本。m...

你跟你的物件是怎樣確立關係的

第一次的表白,真的被我當成了一個玩笑,然後還一直在調侃他,但是後來看見他就算是被我拒絕,也依然在堅持,然後依舊對我很關照,很關心就會讓我很心動。所以在他第二次跟我告白的時候,我們就在一起了。在一起了之後,我們之間的情感也變得更加濃厚,他對我的關心並沒有說,因為我已經成為他的女朋友而減少,反而對我更加...