java - JPA ORM关系高效吗?

标签 java jpa orm

我对 @OneToMany 的效率有一些疑问。假设对象 A 内部有 B 对象的集合,并且该集合有 100k 个对象

class A {
    List<B> b; //.size() == 100.000
    ...
}

即使我将 b 标记为 fetch LAZY,下面的伪代码会做什么?

select from database object into A a;
a.b.add(new B());

如果我是正确的,因为我访问了字段,所以必须加载它,是吗?那么为了进行一次插入,我已经从数据库下载了 100k 行?

谁能解答我的疑惑?

最佳答案

是的,你是对的:所有 100k 行都将被加载。

要做什么?

我认为从 B 到 A 也存在反向关系。在这种情况下,为了避免性能问题,当 A 的 B 列表未加载时,您会保留 B 实例。或者,您可以进行 native 查询。

关于java - JPA ORM关系高效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574724/

相关文章:

java - Eureka 租约续约如何进行?

java - JPA 使用@JOINTABLE 和额外的@JOINCOLUMNs

python - 如何根据另一个模型的 "x"字段设置 "y"字段的值? Odoo-10

java - Hibernate 和类继承。如何覆盖集合?

.net - 有没有办法用 Dapper 调用存储过程?

Windows 上带有通配符的 java 类路径 : Requires semi-colon at the end

java - 为什么要使用 getter 和 setter/accessors?

java - 使用jdbc在Oracle sql中过滤特定日期范围内的数据

java - JPQL 查询不使用 "NOT IN"命令

orm - 如何在 jpql 查询中仅查询父类(super class)实体?