我正在学习休眠。为了进行测试,我使用无效密钥调用了session.load
。在调试器(JB Idea)中跳过该行后,没有任何反应 - 我希望得到ObjectNotFoundException。比,我打开Expression Eval(alt + F8),结果是:
bookFailedLoad = {rs.hibernateTest.model.Book$$EnhancerByCGLIB$$5dd17391@2088}Method threw 'org.hibernate.ObjectNotFoundException' exception. Cannot evaluate rs.hibernateTest.model.Book$$EnhancerByCGLIB$$5dd17391.toString()
CGLIB$BOUND = true
CGLIB$CONSTRUCTED = true
CGLIB$CALLBACK_0 = {org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer@2094}
CGLIB$CALLBACK_1 = null
isbn = null
name = null
publisher = null
publishDate = null
price = 0
chapters = null
hb如何通知POJO该对象无效。拜托,有人可以推荐我一篇文章,帮助我了解在调试hibernate源码的冒险之前发生了什么。
答案 0 :(得分:0)
您必须让调试器运行。如果找不到实体,load
会抛出异常。如果你查看粘贴的材料,你会看到
Method threw 'org.hibernate.ObjectNotFoundException' exception. Cannot evaluate rs.hibernateTest.model.Book$$EnhancerByCGLIB$$5dd17391.toString()
在第一行。
就资源而言,Hibernate in Action书籍是我买过的最好的书之一。非常值得,如果你要花很多时间与hibernate。只需确保您获得的图书版本与您正在使用的hibernate版本相关。