Hibernate查询多次给出相同的记录

我在eclipse中处理hibernate。 我正在执行简单的’From’查询。 这是代码

List list = sess1.createQuery("From Myview").list(); System.out.println("Records Found :"+list.size()); Iterator 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元素,以防表中只有复合主键。

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

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

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

此外,您从视图中获取此列表? 你确定你正确地看了这个观点吗?

您应该使用distinct关键字来过滤相同的结果。

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

将Hibernate返回的对象放到LinkedHashSet并返回LinkedHashSet。