使用JPA进行DTO转换的实体

Why*_*ugo 6 jpa lazy-loading dto datanucleus

我正在使用DataNucleus作为JPA实现来将我的类存储在我的Web应用程序中.我使用一组转换器,它们都有toDTO()fromDTO().

我的问题是,我想避免整个数据库通过网络发送:

  • 如果我延迟加载,转换器将尝试访问所有字段,然后加载(导致非常急切的加载).
  • 如果我没有延迟加载,我会得到很大一部分数据库,因为用户包含组,组包含用户,等等.

有没有办法显式加载某些字段,并在我加载的类中将其他字段保留为NULL?我没有运气就尝试过DataNucleus文档.

Cra*_*Day 3

您的 DTO 可能太细粒度了。即不打算为每个 JPA 实体拥有一个 DTO。如果必须使用 DTO,则使它们更粗粒度并手动构建它们。

最近我们又进行了“要不要 DTO,这是一个问题”的讨论。对它们的要求(尤其是在 JPA 应用程序的上下文中)通常不再存在,但支持 DTO 的论点之一往往是视图具有更粗略的数据要求。