如何更改hibernate的默认获取策略?

Posted

技术标签:

【中文标题】如何更改hibernate的默认获取策略?【英文标题】:How to change hibernate's default fetching strategy? 【发布时间】:2010-12-02 21:47:44 【问题描述】:

我知道hibernate的默认获取策略是LAZY集合,有没有办法通过配置文件更改系统范围的默认获取策略?

【问题讨论】:

没有。你能做的最好的就是<hibernate-mapping>上的'default-lazy'属性:docs.jboss.org/hibernate/stable/core/reference/en/html/… 上面的死链接。见forum.hibernate.org/viewtopic.php?p=2372843 【参考方案1】:

我不知道有什么好的答案可以满足您的需要,抱歉。 :-(


但是我可以挑战你的要求吗? ;-)

    如果您为集合启用早期提取(即 XToMany 或父子关系),则可能也足以启用另一方 (XToOne),即更有可能需要。

    考虑到您的实体通常没有完全分区,即“有一个实体链允许从任何实体到​​任何其他实体”...

    我们推断即使是最简单的请求也会加载整个数据库

这就是我认为“不太可能是个好主意”的原因。

【讨论】:

+1。将所有关联设置为急切获取绝不是一个好主意。 我试图将全局获取策略设置为惰性

以上是关于如何更改hibernate的默认获取策略?的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate笔记

hibernate集合的加载策略

如何配置 Hibernate 5 以强制 Mysql 使用 Innodb 引擎创建表?

CakePHP3:如何即时更改关联策略?

Hibernate(十四)抓取策略

Hibernate 命名策略更改表名