栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

HibernateException:数据库违规错误后,代理句柄不再有效

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HibernateException:数据库违规错误后,代理句柄不再有效

关于您的问题,我有不同的建议。

建议1 :您在所有交易中都错误地重用了同一会话。

要检查此问题,请执行以下操作:放入一个断点,

saveRecord
并检查
SessionImpl
2个连续调用中对的引用是否不同。

老实说,这是您的问题的几率很小,因为您的代码正在与MS SQL Server一起运行。因此,此建议正确的唯一机会是MS SQL
Server中的约束与Oracle中的约束不同。另外,我认为在这种情况下,hibernate将抛出更明确的异常。

建议2 :您在hibernate4中遇到错误

hibernateJIRA中有一些有关此区域的错误报告。(没有您的代码,很难说出您的确切情况)。您的行为很有可能与这些错误之一相关:

https://hibernate.onjira.com/browse/HHH-7688(这个位置与您的位置非常接近,但还有其他位置)

这个错误有一些解决方法吗?

我有一些建议可以尝试:

将hibernate.jdbc.batch_size设置为大于1的值 。此解决方法由Michale Wyraz
建议在此处使用,并且似乎有效。

不要使用反射 :不确定它是否会帮助,但是事务是由aop-
proxy处理的,并且使用反射可能会导致绕过某些事务管理器代码(不应该这样做,但这是要检查的假设)。

更改连接释放模式 :所有这些bug(在hibernateJIRA中) 或多或少都
与JdbcConnection管理有关,因此更改连接释放模式可能会在某个时候帮助您识别问题。(如果您确实遇到了hibernate中的错误,那么我并不是说更改它是解决方案:您最好的选择可能是等待/提供此修复程序)

降级到hibernate3.X :我再也不说这是一种解决方案,但是它可能表明您确实面临着hibernate4中的错误。

升级到hibernate 4.2+ :如其他答案中所建议的,并且有关hibernate基本代码的 最新
更改:只需升级hibernate即可解决问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号