如何在hibernate-validator 4.3.0.Final中使用会话方法load()

时间:2014-01-10 01:27:40

标签: java hibernate session

当我在会话中使用load方法时出现异常 java.lang.ClassCastException: www.csdn.net.blank.bean.City_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy

来自api:

  

您不应该使用此方法来确定是否存在实例(使用   get()代替)。仅用于检索您假设的实例   存在,不存在将是一个实际的错误。

此版本不是持久对象的加载方法吗?

1 个答案:

答案 0 :(得分:1)

这是一个很好的解释: http://way2java.com/hibernate/difference-bewteen-session-get-and-session-load-in-hibernate/

load()被称为延迟提取并返回持久对象的代理而不是实际的持久对象(请参阅上面的文章以获得解释。)

get()被称为eager fetching并返回实际的持久性对象。如果您不确定实例是否实际存在,也应该使用此方法。

至少这是我从阅读上述文章中理解的方式。

听起来你想要使用get()。

来自http://way2java.com/hibernate/difference-bewteen-session-get-and-session-load-in-hibernate/

Session Get vs Session Load comparison