hibernate query did not return a unique result: 2 ; 数据库中存在两个相同的对象

hibernate  query did not return a unique result: 2

错误原因是:数据库中存在两个相同的对象,而hibernate 中 uniqueResult()是返回唯一一个对象。

解决方法:

1)query.setMaxResults(1).uniqueResult();

看到一种很好的解释是:Hibernate可以使用Query.setMaxResults方法简单地设置需要查询的最大结果集,然后Hibernate会自动根据所设置的数据库方言翻译成相应的SQL语句提交给数据库。比如如果数据库是Oracle,SQL Server等,则翻译为类似select ... top 10之类的SQL语句,若是MySQL,则翻译为select ... limit 10之类的SQL~

这里.setMaxResults(1),则会在数据库中取一条数据返回。

2)query.list().get(0) ; hibernate  .list()方法是取出对象结果集返回,然后get(0)是取出集合中第一个对象。

然而,这里有一个坑.... 就是你必须得判断list 是否为空,否则空对象.get(0) 还是会报错哇...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值