繁体   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