hibernate问题:关于lazy加载对于many-to-one对象的load问题。储存的时候是子类,load出来的是基类的对象。

luoxiang2000 luoxiang2000 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
使用lazy加载,储存的时候是子类,load出来的是基类的对象。
比如:
class person {
Address addr;
}

class Address {
String id;
}

class EmailAddress extends Address {
String name;
}

存储:
person p = new person();
EmailAddress addr = new EmailAddress();
addr.id = "001";
addr.name = "test";
p.addr = addr;
XXX.save(p);

但后来load的时候,如果没有使用lazy,也就是说lazy="false",那么取出来的p.addr是一个EmailAddress对象,可是如果使用lazy,也就是说lazy="true",取出来的p.addr却是一个Address对象。
强制转换都不行。也就是说我还必须去数据库中,根据这个Address的id再去取一下才能得到一个EmailAddress对象。为什么?有没有什么解决办法?谢谢。
...全文
评论 5
收藏 已收藏
分享
返回顶部
luoxiang2000
Java EE 67,535 成员 225,843 内容