2015-07-21 36 views
-2

有兩個實體:Employee.javaCompany.java,具有雙向@ManyToOne關係;員工有@ManyToOne與公司的關係,公司與員工的關係有@OnetoManyJPA爲數據庫中的2個不同行返回相同數據

當我發射命名查詢。 Select c from Company c where c.Id='100';爲僱員返回2條記錄,但兩行都具有相同的數據,就像我在數據庫中檢查一樣,我可以看到有兩個不同的僱員行用於連接兩個表的列。

任何人都可以提供一個指向我應該思考和嘗試解決的方向嗎?

+0

你能發佈兩行,因爲他們在你的數據庫確定返回哪一個(兩次)。? – NickJI

+0

您正在查詢公司,但退回了兩名員工?我認爲你必須重寫你的問題,並顯示一些代碼... –

回答

0

正如我從你的寫作理解你的數據庫查詢返回相同的結果集。爲了解決這類問題,我們使用候選鍵。在你的程序中,如果你再添加一列計數公司表,那麼我們可以使用employee_id和count作爲候選鍵。 PLZ更新你的代碼,所以我可以根據你的需要修改它。

或者,你可以在你的公司表中添加一個自動遞增ID隨後也將工作

+0

我的代碼看起來像寫在下面: –

+0

其中。 PLZ更新問題。 –

+0

實體關係是雙向的,客戶<----1:M---->車輛。車輛表的主鍵爲CustomerId,它是Customer的主鍵。這些車輛具有與customerId相同的主鍵。當我通過JPQL查詢獲取該客戶時:.If有兩輛車與那位顧客「寶馬」和「奧迪」有關......我從兩輛車的主鑰匙是相同的兩次獲得「寶馬」。類似的問題在這裏(不詳細的解決方案):http: //stackoverflow.com/questions/5352357/hibernate-typedquery-getresultlist-returns-a-list-of-the-same-object ... –

相關問題