今天在 hibernate 的一对多映射测试 merge 方法时,出现了以下的异常:

我们可以看到,这里的错误有非常明显的重复性,很显然是做了间接递归,并且递归的调用是 hashMap 中的hashCode方法。查找文档问可以知道,hibernate是根据hashCode方法来比较两个 id 相同的元素是否具有不同属性的。merge 方法需要通过 HashCode 来进行数据库的更新。而在这里主要发生了求hashCode时的间接递归。

Set 的 hashCode 是对每个元素的 hashCode 求和,而 Set 的元素类型为 Department, department元素的 hashCode 需要通过 Minister 求得。 Minister 的hashCode 又和Deparment 相关,进而又需要通过Minister求解,因此出现间接递归,导致了爆栈。

最新文章

  1. java数组引用
  2. 技术:使用Amazon S3接口云存储(Java版)
  3. dapper的增、删、查改的CodeSmith模板
  4. JSP Model模式
  5. WAJUEJI which home strong!
  6. 【转】repo 的一些用法和理解-不错
  7. Unix下C程序内存泄露检测工具:valgrind的安装使用
  8. Android actionbar 搜索框
  9. (简单) POJ 1797 Heavy Transportation,Dijkstra。
  10. 快速部署Telegraf & Influxdb
  11. java获取当前系统时间
  12. JMeter(十三)-代理服务器录制脚本
  13. 使用Let's Encrypt生成免费SSL证书操作记录
  14. fastjson 使用教程
  15. CF1045G:AI robots(CDQ分治)
  16. (4.29)sql server中有关于GO的坑
  17. UILabel部分文字可点击
  18. hdu 4901 划分序列使异或和==且和
  19. 您该选择PRINCE2 还是 PMP认证
  20. Java List集合冒泡法排序的两种实现

热门文章

  1. JS容易理解错误的地方
  2. [Leetcode] Merge two sorted lists 合并两已排序的链表
  3. [Leetcode] word break 拆分词语
  4. POJ 开关问题 解题报告
  5. readelf用法小记
  6. 怎么让Intellj Idea 把数据库的表映射成hibernate的domain对象
  7. LwIP - raw/callback API、协议栈API(sequential API)、BSD API(或者说 SOCKET API)
  8. TestRedis
  9. session超时设置+超时页面跳转
  10. Ubuntu 15.10 安装比特币客户端