【问题标题】:How to handle save of complex object in service layer如何处理服务层中复杂对象的保存
【发布时间】:2018-11-17 16:50:07
【问题描述】:

我有一个复杂的对象域对象调用 A。它由 3 个其他对象组成。

public class A { 
  private B bObject;
  private C cObject;
  private D dObject;

  //somes primitive types fields
} 

我有一个对象 A 的服务层。

public class serviceA {
  private RepositoryA repositoryForA;

  //CRUD operations on A
}

对象 B、C、D 有自己的存储库,它们没有服务层。因为他们暂时没有商业逻辑。它们只包含 A 的信息。

为了保存 A,我需要保存所有组合的对象 B、C、D,并且我必须将 B、C、D 存储库注入到 serviceA 类中。

所以我认为这不是一个好主意,对于 A 上的每个新组合对象,我都需要在 serviceA 类上注入一个新的存储库。 我的 A 对象是复杂的,还是必须这样做?

【问题讨论】:

    标签: java architecture clean-architecture


    【解决方案1】:

    这不是一个简单的问题。无论如何,我让它变得简单,我还假设 A 和 B、C 和 D 之间存在关系。所以我希望保存 A 并没有保存组成它的对象,在这种情况下 A 的服务层应该关心还有关于他的孩子。

    【讨论】:

      【解决方案2】:

      我在 Java 上下文中,我使用 JPA/Hibernate。所以如果我使用对象之间的良好关系Hibernate应该保存所有的复合对象。

      https://vladmihalcea.com/a-beginners-guide-to-jpa-and-hibernate-cascade-types/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-22
        • 1970-01-01
        • 2013-11-09
        • 2019-12-31
        相关资源
        最近更新 更多