查看该部分代码,推测可能是player = (Player)playerlist.get(i); 出现了问题;
如果player在上面的代码中是不为null,并且该对象的数据是保存到数据库过的,也就是进行了持久化的。由于hibernate使用缓存,player = (Player)playerlist.get(i);也就是重新给之前持久化过的实例player进行了赋值,player进行了更新,更新操作会在事务中提交。而此处多次循环赋值,并且都是已经保存过的数据,所以id肯定是重复的,也就报错了。
针对调用Query方法出错,是不是可能导包的时候弄错了,请确认导入的Query类是否为org.hibernate.Query;
hibernate在进行事物持久化时候,你要使用sesison.close();在确定你是单表的查询时候,要在每次查询sql语句时候,将sql关闭,这样在缓存才能类似,数据库使用(oracle中)commit;sqlserver中使用执行一样,这样才能将数据库和你页面调用同步!
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....