gpt4 book ai didi

java - 具有 Eager fetch Type 属性的对象执行对该属性的延迟加载属性的查询。为什么?

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

我正在使用 SpringBoot,当为 AModel 调用存储库时,存储库正在执行对 BModel、CModel 和 DModel 的查询,即使我既没有调用 CModel 也没有调用 DModel。知道为什么会发生这种情况以及如何预防吗?

@Entity
public class AModel extends Model {

@OneToOne(fetch = FetchType.EAGER)
@JsonIgnore
private BModel;
}

@Entity
public class BModel extends Model {

@OneToOne(fetch = FetchType.LAZY)
private CModel;

@OneToOne(fetch = FetchType.LAZY)
private DModel;
}

@Query("select a from com.project.models.AModel a where a.id = :id")
@Override
Candidate findOne(@Param("id")Long id);

最佳答案

这里的原因是,当实体AModel包含实体BModel时,实体BModel又包含CModelDModel。当调用 AModel 的提取时,它必须提取 CModelDModel,否则如果CModelDModel 不会被获取,将 AModel 的 fetchType 设置为 Eager 的全部目的是走了。

关于java - 具有 Eager fetch Type 属性的对象执行对该属性的延迟加载属性的查询。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30517641/

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