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