ams*_*ams 5 java packaging jpa module
我试图通过打包到单独的 jar 中的功能将我的应用程序分区为模块,例如 feature-a.jar、feature-b.jar 等。
单个功能 jar(例如 feature-a.jar)应包含功能 a 的所有代码,包括 jpa 实体、业务逻辑、rest api、单元测试、集成测试...等。
我遇到的问题是 JPA 实体之间的双向关系导致 jar 文件之间的循环引用。例如,客户实体应位于 customer.jar 中,订单应位于 order.jar 中,但客户引用订单,订单引用客户,因此很难将它们拆分为单独的 jars/eclipse 项目。
我看到的用于处理 JPA 实体中的循环依赖关系的选项:
问题:
您没有使用任何规则来决定 中的循环引用JPA。我也得测试一下。
在我的示例中,有一个实体Category必须OneToOne是parentCategory双向OneToMany的childCategories。
我想,Circular Reference 就像下面的数据结构。
CategoryID Name ParentID
001 AAA 002
002 BBB 003
003 CCC 004
004 DDD 001
Run Code Online (Sandbox Code Playgroud)
我想建议哪些是应该避免的问题。
例子 :
public void addNewCategory(Category category) {
checkCircularity(Category category, category.getParent());
}
public static void checkCircularity(Category child, Cagegory parent) throws CircularReferenceException {
if (superior != null) {
if (sub.isEqual(superior) || sub.isEqual(parent.getParent())) {
throw new CircularReferenceException("Circularity Referencing.........");
} else if (finder.getSuper(superior) != null) {
checkCircularity(child, parent.getParent());
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果程序不抛出异常CircularReferenceException,则该Category实例不存在循环引用。
| 归档时间: |
|
| 查看次数: |
2675 次 |
| 最近记录: |