首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate.max_fetch_depth示例示例

hibernate.max_fetch_depth示例示例
EN

Stack Overflow用户
提问于 2022-05-10 15:40:37
回答 1查看 70关注 0票数 0

我有一个很大的数据库,到处都是双向关系。问题是,当我传递一个典型的jpa查询(如findById或其他查询)时,我会恢复具有无限深度的对象(简而言之,我恢复了整个数据库)。因此,我的问题是:是否有办法限制检索到的对象的深度?下面的hibernate属性有用吗?

hibernate.max_fetch_depth为单端关联(一对一、多对一)的外部连接获取树设置了最大“深度”。0禁用默认的外部连接取取。例如建议值在0到3之间

有人能用例子向我解释一下这个属性吗。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2022-05-21 15:59:17

Hibernate允许您在实体类中EAGER取取的情况下决定取取的深度。

考虑一个例子:

代码语言:javascript
复制
public class ClassA implements Serializable{
@JoinColumn(name="class_b", referenceColumnName="id")
@ManyToOne
private ClassB classB;
}

public class ClassB implements Serializable{
@JoinColumn(name="class_c", referenceColumnName="id")
@ManyToOne
private ClassC classC;
}

public class ClassC implements Serializable{
@JoinColumn(name="class_d", referenceColumnName="id")
@ManyToOne
private ClassD classD;
}


public class ClassD implements Serializable{
//codes
}

如果您获取ClassA,并且您的hibernate.max_fetch_depth被设置为2,那么它将只获取ClassB,然后classB将获取ClassC,并终止抓取过程。

您可以查看此文档以获得更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72189312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档