如何解决JPA - 如何通过 JPA 有效获取父级的所有子级?
有如下父子类
@Entity
class Parent {
@Id
Long id;
@OnetoMany(orphanRemoval = true,cascade = CascadeType.ALL)
List<Child> children;
}
@Embeddable
class Child{
@Id
Long id;
// child does not have parent id
}
我正在使用 objectdb 和 JPA。我的数据库变大了,有些父母有 50 万个孩子。 通常,为了获取父级的所有子级,我正在加载父级并通过延迟加载将子级作为 parent.getChildren() 访问。 但是,由于列表太大,需要大量内存。
如何以高性能的方式将特定父级的所有子级作为轻量级 DTO 对象列表?
额外问题:如何有效删除父级的所有子级?
解决方法
将子项设置为可嵌入是一种可能的解决方案。请注意,在这种情况下,不需要 id 字段,该字段未使用且仅占用空间。您可以通过清除集合来删除可嵌入的子项。
为了提高性能,您可能需要不同的设计,其中并非每次都加载所有 500K。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。