2015-08-28 68 views
0

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

只要Hibernate不知道这个水平,没有延迟加载那里。 我该如何制作它?有没有解决方案或常见的/更好的做法来实现延迟加载,而无需在业务级别存储外部密钥(和其他持久性东西)?

我的目标是使业务和持久之间的联系软越好。我明白,只要我转向实体关系,并从业务层面引入一些数据库加载,这些级别就会彼此绑定。但是有什么方法可以最小化依赖性?

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

+0

如果业务层中的实体映射到持久层中的实体,是不是仅仅在持久性中进行延迟加载? –

回答

0

这是最好的分裂域成两个独立的Bounded Contexts完成。这意味着您将无法直接引用非延迟加载域中的延迟加载上下文。你将不得不退出到服务层来引用它。无论如何,这可能是您正在寻找的模式,如果延迟加载的信息的检索成本太高。

这将推动应用程序的设计在相当高的水平,所以准备重构的东西,使这项工作。