3

我们正在建立一个新项目,并决定为 JPA 使用 eclipselink。在创建我们的领域模型时,我们遇到了一个问题。

我们有一个叫做组织的基类。我们还有供应商和客户,它们都扩展了组织。当 JPA 创建表时,我看到它使用了一个鉴别器,问题在于供应商也可以是一个组织。

所以我基本上想要的是(这些是数据库表来获得这个想法):

ERD 显示子类型

一个小例子来帮助澄清这一点:

我们有一个客户叫 SparklingGlass。SparklingGlass 从我们这里购买计算机,因此 SparklingGlass 被保存为我们的客户。我们反过来从 SparklingGlass 购买窗户,因此 SparklingGlass 也是我们的供应商。这就是我们想要在我们的系统中实现的。

这在 JPA 中是否有可能,如果没有,在这些情况下最佳实践是什么?

顺便说一句,我们使用 JOINED 继承类型

4

2 回答 2

0

不知道我明白。在 Java 继承中,一个实例只能属于一个类。由于供应商和客户从组织继承,“所有”供应商和“所有”客户都是组织。

对供应商的查询将加入组织和供应商表以构建供应商实例。

于 2012-08-08T12:24:13.503 回答
0

你的数据模型是错误的。供应商不是组织的子类型,而是组织所扮演的角色。

一个组织可以扮演许多角色,例如客户、供应商、供应商、雇主。

于 2013-08-04T02:38:23.383 回答