日期:2014-05-17  浏览次数:20641 次

hibernate配置问题
有三张表“分包合同执行跟踪A”、“分包合同B”、“建设合同C”
A和B的关系是多对一,B和C的关系也是多对一

hibernate中配置了它们的关系,现在C表的部分数据被删除了,所以在查询A表列表的时候出现了问题。

查询得到List没有错,页面引用的时候报了错,比如说 A.B.C.projectName 就报了错

报的错为
No row with the given identifier exists

在网上查了很多方法,比如说配置 fetch="join" not-found="ignore" 等,但这个只能解决两张表的问题,我这是三张表关系, 哪位大侠帮我想想办法,谢了!

------解决方案--------------------
1.在页面显示C.projectName 之前,加个判断C是否为空
2.在数据库设置级联删除,删除C表数据的时候,B表相关联的数据也会被删除,保证数据的完整性(不建议使用)
------解决方案--------------------
这种可以不用链接关系,根据ID来查询,
------解决方案--------------------
在页面中捕捉指定的错误,然后转为异常处理,并给出友好处理,关联数据被删本来就是逻辑上的问题,无法一下子避免避免,只能抛出友好提示。