关于 hibernate 中 hashCode爆栈的探讨
2024-08-28 19:21:57
今天在 hibernate 的一对多映射测试 merge 方法时,出现了以下的异常:
我们可以看到,这里的错误有非常明显的重复性,很显然是做了间接递归,并且递归的调用是 hashMap 中的hashCode方法。查找文档问可以知道,hibernate是根据hashCode方法来比较两个 id 相同的元素是否具有不同属性的。merge 方法需要通过 HashCode 来进行数据库的更新。而在这里主要发生了求hashCode时的间接递归。
Set 的 hashCode 是对每个元素的 hashCode 求和,而 Set 的元素类型为 Department, department元素的 hashCode 需要通过 Minister 求得。 Minister 的hashCode 又和Deparment 相关,进而又需要通过Minister求解,因此出现间接递归,导致了爆栈。
最新文章
- java数组引用
- 技术:使用Amazon S3接口云存储(Java版)
- dapper的增、删、查改的CodeSmith模板
- JSP Model模式
- WAJUEJI which home strong!
- 【转】repo 的一些用法和理解-不错
- Unix下C程序内存泄露检测工具:valgrind的安装使用
- Android actionbar 搜索框
- (简单) POJ 1797 Heavy Transportation,Dijkstra。
- 快速部署Telegraf &; Influxdb
- java获取当前系统时间
- JMeter(十三)-代理服务器录制脚本
- 使用Let's Encrypt生成免费SSL证书操作记录
- fastjson 使用教程
- CF1045G:AI robots(CDQ分治)
- (4.29)sql server中有关于GO的坑
- UILabel部分文字可点击
- hdu 4901 划分序列使异或和==且和
- 您该选择PRINCE2 还是 PMP认证
- Java List集合冒泡法排序的两种实现
热门文章
- JS容易理解错误的地方
- [Leetcode] Merge two sorted lists 合并两已排序的链表
- [Leetcode] word break 拆分词语
- POJ 开关问题 解题报告
- readelf用法小记
- 怎么让Intellj Idea 把数据库的表映射成hibernate的domain对象
- LwIP - raw/callback API、协议栈API(sequential API)、BSD API(或者说 SOCKET API)
- TestRedis
- session超时设置+超时页面跳转
- Ubuntu 15.10 安装比特币客户端