在hibernate实体上调用merge会返回Javassist代理对象吗?

时间:2013-09-26 11:33:50

标签: java hibernate

任何人都可以帮助解决上述情况吗?

我有一个实体A,它包含对另一个实体B的引用(映射为OneToOne关系)。当我在实体A上调用merge并返回此持久对象时,实体B(在单步执行和调试时)显示为Javassist对象而不是实际实体对象。这使得调试非常混乱......

这是我可以关闭的选项吗?这对我有益吗?我已经检查了Manning的Java Persistence with Hibernate一书 - 它没有提到Javassist ......

干杯

1 个答案:

答案 0 :(得分:2)

我们得到_javaassist对象(代理对象),如果在会话关闭后将其初始化为其相关对象。

在您的情况下,尝试打开新会话,启动事务,然后使用session.save()保存对象以保存对象。然后session.flush()并提交交易。

它将解决您的问题。

如果它不起作用,我会在刷新会话之前建议Hibernate.initialize(a.getB())

它肯定会回归实际对象。