Spring MVC - 应该在哪个层实体关联?

时间:2017-08-22 19:35:01

标签: java spring-mvc jpa associations

我的问题与In which layer should I join 2 entities together?有些相似,但我找不到合适的答案。

如果相关,请将JPA与Hibernate一起使用。

我有一个模型类User,它与类Product有一对多的关系。没有用户就不能存在Product

在我的应用的表单提交部分之后,我收到了ProductUser ID的实例;该产品尚未链接到User实例。要执行关联,我需要:

  1. 执行User
  2. 的查找
  3. 致电User.addProduct()
  4. 持续更改两个模型
  5. 我的问题是从设计的角度来看,这些步骤应该在哪里进行?从我看到我有3个选项:

    • 在控制器方法中执行查找并使用单独的服务来保持(不受益于事务性DAO方法)
    • 将方法调用中的ID和Product实例传递给使用用户DAO执行用户查找的ProductService并保留两者。
    • 与之前相同,但在UserService

    我可能错过了一些正确的方法,但哪种方法遵循最佳做法?惯例是什么?

    我在我的DAO上使用@Transactional,所以第一种方法不会从我理解的内容中获取和更新同一事务中的两个实体。

0 个答案:

没有答案