gpt4 book ai didi

java - 如何取消代理 hibernate 对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:15 25 4
gpt4 key购买 nike

<分区>

我如何取消代理一个 hibernate 对象,以便支持多态性?

考虑以下示例。 A 类和 B 类是两个 hibernate 实体。 B有两个亚型C和D。

List<A> resultSet = executeSomeHibernateQuery();
for(A nextA : resultSet) {
for(B nextB : nextA.getBAssociations() {
if(nextB instanceof C) {
// do something for C
} else if (nextB instanceof D) {
// do something for D
}
}
}

此代码无法执行 C 或 D block ,因为 B 集合已被延迟加载,并且 B 的所有实例都是 Hibernate 代理。我想要一种取消代理每个实例的方法。

注意:我意识到可以优化查询以急切地获取所有 B。我正在寻找替代方案。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com