簡體   English   中英

Hibernate查詢多次給出相同的記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM