如何避免org.hibernate.ObjectNotFoundException异常

10-06-12 yxh1122
在使用DaoCRUDTemplate类的loadModelById方法获取model的时候,如果对应查询id的model不存在,则返回的model对象并不是null,而在以后运行的过程中读取该model中的属性却会发生hibernate.ObjectNotFoundException异常,现在的办法是在发生异常的地方增加try catch块儿将异常过滤,有没有更好的方法直接知道该model是否可用呢?

[该贴被yxh1122于2010-06-12 13:14修改过]

2
cerz
2010-06-14 16:00
你使用了lazy吧?

banq
2010-06-15 11:23
可使用instanceof判断是否是你想要的model具体类型。

yxh1122
2010-06-17 17:22
hibernate的懒加载和jdon的缓存是有冲突的,所以没有使用lazy

yxh1122
2010-06-18 12:55
使用instanceof判断也没有效果啊,
if(model != null && model instanceof Model),执行此行仍然能够返回true,但该model实际上是不存在的

yxh1122
2010-06-18 13:50
有些资料说此问题是因为使用hibernate加载数据的时候使用load方法,我将框架中使用的load方法修改为get方法,不使用hibernate的lazy,如果查询的结果为空则返回null,就没有该问题了,不知道改成get后会不会带来其他的问题。非常感谢大家的帮助

[该贴被yxh1122于2010-06-18 13:51修改过]

猜你喜欢