Java Hibernate查询多次提供相同的记录

Java Hibernate查询多次提供相同的记录,java,hibernate,Java,Hibernate,我正在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 n

我正在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 List=sess1.createQuery(“从Myview”).List();
System.out.println(“找到的记录:+list.size());
迭代器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次,但同一条记录重复了一次又一次。我需要的是后面图像中显示的输出


请在这方面帮助我,因为我刚开始冬眠

您确定表格填写正确吗? 尝试:


此外,您是从视图中获取此列表的吗?是否确实正确创建了此视图?

您应该使用distinct关键字筛选相同的结果

当hbm文件中的id元素不是DB表中的PK时,会发生这种情况。Hibernate将具有相同ID的所有行视为同一对象


将id元素更改为指向PK列,或者在您的表只有复合主键的情况下使用复合id元素。

您的实体Myview必须实现java.io.Serializable接口

如果您在映射中有关联,请检查是否
fetch=FetchType.EAGER
。如果是,则使用其他获取类型或获取模式。

将Hibernate返回的对象放入LinkedHashSet并返回LinkedHashSet

List list = sess1.createQuery("SELECT * FROM Myview").list();