0

嗨,我正在使用 JPA hibernate 作为持久性框架,我班级上的所有 fetc 类型属性都是 EAGER ,所以当我试图从我的数据库中找到所有产品时,它需要 15 秒,太慢了 :( 有没有加速它的解决方案,我想让我的所有产品都具有所有依赖项,我的 mysql DB 上只有 80 行,这一直是逻辑吗?我可以调节这种类型的获取吗?我正在使用 EJB3.0 会话 productSession 是无状态的,我正在使用命名查询 @NamedQuery(name = "Produit.findAll", query = "select a from Produit a")

4

1 回答 1

3

如果将所有关联设置为渴望,显然会花费很多时间,因为在加载产品时,必须获取其类别。以及该类别的创建者。和创造者的兄弟。还有哥哥的女儿。还有女儿的陪伴。和公司所在的城市。还有城市的国家,等等等等。我什至不是在谈论许多协会。

只是不要将所有内容都设置为急切加载。并使用适当的 HQL 查询来仅加载您感兴趣的内容。如果关联设置为渴望,它将始终被渴望加载。如果将其设置为惰性,则可以在需要时使用 HQL 或 Criteria 查询急切地获取它。

阅读有关 joins 的 HQL 文档,尤其是 fetch joins。

于 2012-05-26T07:49:51.033 回答