![](/img/trans.png)
[英]Does calling multiple times save() method of hibernate with same object insert new record in DB?
[英]Hibernate query gives same record multiple times
我在eclipse中處理hibernate。 我正在執行簡單的'From'查詢。 這是代碼
List list = sess1.createQuery("From Myview").list();
System.out.println("Records Found :"+list.size());
Iterator<Myview> i = list.iterator();
while(i.hasNext())
{
Myview nS = i.next();
System.out.println(nS.getFirstName()+" -- "+nS.getLastName()+" -- "+nS.getAddressLine1());
}
問題是list.size()返回11,這是正確的,因為我的表中有11條記錄。 但是當我在while循環中時,相同的記錄顯示多次,並且循環在第11次迭代后終止。 這是我的輸出
這就是我想要的
現在您可以看到,在我的輸出中,記錄顯示了11次,但同一記錄一次又一次地重復。 我需要的是后面圖像中顯示的輸出。
在這方面請幫助我,因為我是冬眠的新手
當hbm文件中的id元素不是數據庫表中的PK時,會發生這種情況。 Hibernate將所有具有相同ID的行視為同一對象。
要么將id元素更改為指向PK列,要么使用composite-id元素,以防表中只有復合主鍵。
你確定表格填寫正確嗎? 嘗試:
List list = sess1.createQuery("SELECT * FROM Myview").list();
此外,您從視圖中獲取此列表? 你確定你正確地看了這個觀點嗎?
您應該使用distinct關鍵字來過濾相同的結果。
您的實體Myview必須實現java.io.Serializable接口
如果映射中有關聯,請檢查fetch=FetchType.EAGER
。 如果是,則使用其他獲取類型或fetchMode。
將Hibernate返回的對象放到LinkedHashSet並返回LinkedHashSet。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.