在业务级别进行延迟加载

时间:2015-08-28 09:38:22

标签: java architecture persistence lazy-loading

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

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

我的目标是尽可能地使业务和持久性之间建立联系。我理解,只要我从业务层面转向实体关系和数据库中的一些加载,这些级别就会彼此绑定。但有没有办法减少依赖?

P.S。我确实需要以任何可能的方式进行延迟加载。

1 个答案:

答案 0 :(得分:0)

最好将您的域拆分为两个单独的Bounded Contexts。这意味着您无法直接引用非延迟加载域中的延迟加载上下文。您将不得不退回到服务层以引用它。这可能是你正在寻找的模式,如果延迟加载的信息是如此昂贵的检索。

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