如何在服务层处理复杂对象的保存
How to handle save of complex object in service layer
我有一个复杂的对象域对象调用 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 存储库注入服务 A class。
所以我认为这不是一个好主意,对于 A 上的每个新组合对象,我都需要在 serviceA class 上注入一个新的存储库。
我的 A 对象是不是太复杂了,还是必须这样做?
这不是一个简单的问题。无论如何,我让它变得简单,我还假设 A 和 B、C 和 D 之间存在关系。所以我希望在不保存组成它的 objects 的情况下保存 A 并没有任何意义,在这种情况下是服务层A的也应该关心他的children。
我在 Java 上下文中,我使用 JPA/Hibernate。因此,如果我使用 objet 之间的良好关系,Hibernate 应该保存所有复合对象。
https://vladmihalcea.com/a-beginners-guide-to-jpa-and-hibernate-cascade-types/
我有一个复杂的对象域对象调用 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 存储库注入服务 A class。
所以我认为这不是一个好主意,对于 A 上的每个新组合对象,我都需要在 serviceA class 上注入一个新的存储库。 我的 A 对象是不是太复杂了,还是必须这样做?
这不是一个简单的问题。无论如何,我让它变得简单,我还假设 A 和 B、C 和 D 之间存在关系。所以我希望在不保存组成它的 objects 的情况下保存 A 并没有任何意义,在这种情况下是服务层A的也应该关心他的children。
我在 Java 上下文中,我使用 JPA/Hibernate。因此,如果我使用 objet 之间的良好关系,Hibernate 应该保存所有复合对象。
https://vladmihalcea.com/a-beginners-guide-to-jpa-and-hibernate-cascade-types/