我在gorm(Hibernate)中使用grails。 出于测试目的,当Hibernate将域对象包装在其自己的帮助器中时,我需要可靠地创建一种情况。
来自http://www.tothenew.com/blog/extract-correct-class-from-hibernate-object-wrapped-with-javassist/
因此,如果我们以一对多或多对多关系在集合的成员上调用class.name,我们将获得类名 类似于com.test.classname_javassist_59。
但是我似乎无法复制这一点。我有一个测试案例 hasMany集合是延迟加载的,但是我从没有Java帮助。 我还尝试了延迟加载的一对一提升,它也没有在类名中返回java_assist。
class TestCase{
static hasMany=[testCollection:TestCollection]
}
//test...
TestCase.get(1);
//lazy access collection item
TestCase.testCollection[0].class.name // no java assist
//lazy load one to one association testCaseB
TestCase.testCollection[0].testCaseB.class.name// no java assist
//...
这个stackoverflow问题Hibernate: Does Hibernate Always Use Object Proxies?概述了一个答案,但是我仍然无法创建一个演示它的代码实现。