我正在使用一个使用hibernate的应用程序。当对象从休眠状态返回时,它不再是一个pojo ..有一些类似cglibenhancer附加到它。因为它我不能对它做任何操作。我需要再次将它转换为java poja。为此,我正在使用hibernatebeanreplicator。它的作用是,如果类附加了cglibenhancer ..它使对象为null。问题来自于我只获取该对象的一个或两个属性并且我想使用它们,但是因为该类附加了cglibenhancer,它使它为null ..我想只有那些未获取的属性应该是mae null。让我通过一个例子让场景更加清晰。
我有一个用户类
class User {
long id;
String name;
Address address;
}
我有另一个班级地址
class Address {
long addrId;
String streetName;
String city;
}
在我的用户类maping中,我将addrId存储为外键。 现在我只想获取用户类数据+地址ID。 但是因为我没有完全加载地址类并且它附加了cglibenhancer而我的beanreplicator使它为null。
有没有办法获取用户类数据+地址ID并使streetName和city为空。
提前致谢,
Rima Desai
答案 0 :(得分:0)
我认为你不能做你想做的事,虽然我不明白你为什么会这么想。
如果您获取Person
的{{1}},并且由于某种原因Hibernate决定Address
应该是CGLIB代理,您可以获取Address
'ID没有它会打到数据库。但当然,如果您尝试获取街道或城市,则必须转到数据库以获取该数据。