我有一个服务方法调用DAO,然后从数据库返回一个对象。该方法从系统的许多部分调用。但是,一种特定的方法是获取类型为ObjectClass _ $$ _ javassist_somenumber的返回类型。这是扔掉的东西。我调用与其他地方完全相同的服务方法,那么为什么hibernate会返回代理而不是自然对象呢?为什么hibernate返回代理对象?
我知道有办法暴露“代理”对象,但我不觉得我应该这样做。
查询仅仅是
hibernateTemplate.find("from User u where u.username = ?", username)
我使用Hibernate 3.3 BTW。
那么对象是急切加载,因为我得到一个代理对象这个特别的电话,我想你不能保证该对象会是。有趣的是,当我从方法A调用DAO.getUser(String username)时,我得到User对象,但从方法B调用完全相同的庄园中的方法,我得到代理。 – predhme 2010-04-07 19:10:34
通常,问题是以这种方式返回的代理*未被正确初始化;否则,如果它被正确填充,事情应该已经正常进行。任何人都知道为什么find方法可能会返回未初始化的代理? – 2011-07-22 03:15:57