【问题标题】:Lazy loading at the business level业务层面的延迟加载
【发布时间】:2015-08-28 21:25:44
【问题描述】:

在我的 Java 应用程序中,我试图尽可能严格地分离业务模型和持久性模型。所以我有一组由 Hibernate + Spring Data 支持的持久性级别的实体,具有关系、级联、延迟加载和其他功能。 但后来我有了一个业务模型,作为一组不同的实体,它们以某种方式映射到持久性实体上。

只要 Hibernate 不知道这个级别,就不会在那里延迟加载。 我该怎么做?是否有解决方案或常见/更好的做法来实现延迟加载而不在业务级别存储外部密钥(和其他持久性内容)?

我的目标是让业务和持久性之间的联系尽可能柔和。我明白,一旦我转向实体关系和从业务级别开始的数据库加载,这些级别将相互绑定。但是有没有办法最小化依赖呢?

附:我确实需要延迟加载本身,以任何可能的方式。

【问题讨论】:

  • 如果业务层的实体映射到持久层的实体,只在持久层有延迟加载还不够吗?

标签: java architecture persistence lazy-loading


【解决方案1】:

最好将您的域拆分为两个独立的Bounded Contexts。这意味着您将无法直接引用非延迟加载域中的延迟加载上下文。您必须退回到服务层才能引用它。如果延迟加载的信息检索起来非常昂贵,那么这可能就是您正在寻找的模式。

这将在相当高的水平上推动您的应用程序设计,因此请准备好重构事物以使其工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多