事情发生在今天工作时,
我在 new 一个 jpa 的 entity 要准备写入数据库之前发生的...
因为我打算把刚 new 出来的 entity 当作map key,
来包一些东西之后,再一次做存入,
因此我 new 了两个 entity 塞到 map 之后,
居然发现我的map还是只有一个元素!!
一开始还以为是我code写错,
找了很久,最后发现问题在是entity里头覆写的 hashCode 跟 equals,
因为里头会把 seq 拿去算杂凑,
但 new 一个 entity 的时候其 seq 是null,
所以算出来的杂凑一样!
原本想说找到问题了,因为拿掉覆写的 hashCode 之后,
连续 new 两次所看到的reference就不一样了,
然后因为已经下班时间又很饿,所以我就没马上修改杂凑逻辑,就下班吃饭去了~
回家后我还是觉得很奇怪,
所以在家就简单写了class来测试,
我依然用公司那个 entity 的 hashCode 跟 equals 的逻辑来写,
这次 new 出来的又是不同的reference!
所以我一开始以为 hashCode 没写好的话会导致 new 出来的 reference 会一样,
但经过家里简单的测试之后,事实又不是这样...
所以我现在很confuse...
想请问各位前辈有人知道症结点在哪吗?
还是 jpa 对于 entity 有什么特殊的管理?