JPA双向关系与存储库/ DAO使用

时间:2016-03-04 11:14:40

标签: java hibernate jpa repository

我一段时间以来都在苦苦挣扎。我有一个包含30个实体的实体图。其中大多数是通过双向关系连接的。有些连接非常有用,有些则没有,因为它们仅在实体之间删除时才提供便利。

此外,我有存储库来创建/查找/存储实体。不幸的是,每个实体都有一个存储库,感觉这些存储库是我的对象图中的窗口。这样的事情是推荐的实现吗?

由于维护父/子关联的双向关系导致的样板代码,我有想法替换其中一些双向关系并将其放入存储库。其中一些关系仅与其他参数结合使用。让我们采取经典的客户< - >订单示例。我认为方向客户 - >订单并不总是好的,因为有时需要将结果限制在特定时期。

我的问题是:你有什么建议摆脱这场斗争?为方便起见,您是否总是在较大的项目中使用双向关系?或者你用特定的存储库查询替换它们?是否可以为每个实体维护存储库?

我被撕了一会儿......: - (

1 个答案:

答案 0 :(得分:0)

嗯,在我看来,如果不了解你的设置,就很难说。您使用的是Spring CrudRepositories,自定义Daos还是EntityManager?也许它没有那么大的差别,但我对它感到好奇。

简而言之,我非常高兴写一个最近有10个Enities和一个服务层的应用程序。也许它可以帮助考虑业务需求并开始制作新的服务层。尽管拥有30个左右的实体,但您可能只有少数业务观点。显然,客户和订单。也许,付款,运费,退货。

查看谁正在使用该应用程序以及他们称之为部门的内容。为该部门提供服务。即使您从其他部门复制了一些代码,也可以调用该部门的所有需求。别忘了IT部门。之后,当您很好地了解这些服务是如何形成的时候,您可以分解出常见的行为。

希望这有帮助。