报这个错真的是一脸懵逼,看了好久。
一开始发现是查某个表的时候报的这个错(这里定为C表),查前面两个表(A和B)都是很正常的,所以都把焦点放在了这个C表究竟有什么不一样。
然后发现了一个问题,有的能成功,有的是失败的。用A系统调能成功,用B系统调就失败了。接下来就在对比究竟A和B系统调这个接口的数据有什么差异。。。
一直看了将近一个小时,还是看不出来。然后就决定跟下hibernate的源码看看了。。。
结果发现是A表在update的时候没set contractType这个值,但是在它的映射文件写着不能为null。接着又发现A系统在insert有set这个值,B系统居然没有。。。。
还有一个点就是:
在C表查询的时候报的这个错,但是真正的错误不一定是在这里,因为事物管理器是同一个。。。。
如果需要明确是定位到是哪个表报的错,就报事物管理去掉,这样比较快定位到哪一个表的问题。
最后的总结就是:
报这个错一定是某个表的某个字段有问题。。。。一定是。。。。。