相关疑难解决方法(0)

与共享主键的OneToOne关系生成n + 1个选择; 任何解决方法?

想象一下关系数据库中的2个表,例如Person和Billing.在这些实体之间定义了(非强制性)OneToOne关联,并且它们共享Person主键(即PERSON_ID在Person和Billing中定义,并且它是后者中的外键).

通过命名查询对Person进行选择时,例如:

from Person p where p.id = :id
Run Code Online (Sandbox Code Playgroud)

Hibernate/JPA生成两个选择查询,一个在Person表上,另一个在Billing表上.

上面的示例非常简单,并且不会导致任何性能问题,因为查询只返回一个结果.现在,假设PersonnOneToOne关系(均非强制性)与其他实体(所有共享Person主键).

如果我错了,请纠正我,但是select在Person上运行查询,返回r行,将导致(n+1)*rHibernate生成选择,即使这些关联是懒惰的.

是否存在针对此潜在性能灾难的解决方法(除了根本不使用共享主键)?谢谢你的所有想法.

java hibernate jpa

7
推荐指数
1
解决办法
5091
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1