2015-02-24 54 views
0

我得到这个object在控制之下。在object.getClass()它说com.mypack.class_james_007,我认为这个对象到目前为止是未初始化的,属于class's代理。休眠无法分辨对象是否是代理或真实

我测试org.hibernate.Hibernate.isInitialized(object),它说的是真的。

我做org.hibernate.Hibernate.initialize(object)。之后object.getClass()它仍然说com.mypack.class_james_007

不应该通过在调用getClass()时返回正常类名来初始化initialize(o)上的对象。 这种行为困扰我,请帮助我们。那里有什么?

我发生这个问题的原因是在实现我的域的equals方法时。

回答

1

代理可以处于两种状态:初始化或不初始化。代理的初始化不会改变它的运行时类型(没有什么可以做到这一点),但只是在底层的非代理对象中加载数据。

+0

那么如何访问该底层实际对象? – 2015-02-24 14:50:26

+0

我使用'session.load(id)'或类似的东西。但你的更新需要它实际:) – talex 2015-02-24 15:06:28

+0

我的更新?这是什么意思? – 2015-02-24 15:16:56