我们正在建立一个新项目,并决定将eclipselink用于JPA。在创建我们的域模型时,我们遇到了一个问题。
我们有一个叫做组织的基类。我们还有供应商和客户都扩展组织。当JPA创建表格时,我看到它使用了鉴别器,问题在于供应商也可以是一个组织。
所以我基本上想要的是(这些是获取想法的数据库表):
帮助澄清这一点的一个小例子:
我们有一个名为SparklingGlass的客户。 SparklingGlass从我们这里购买计算机,因此SparklingGlass被保存为我们的客户。我们反过来从SparklingGlass购买我们的窗户,因此SparklingGlass也是我们的供应商。这是我们想要在我们的系统中实现的。
这在JPA中是否有可能,如果不是,这些情况下的最佳做法是什么?
BTW我们使用JOINED继承类型
答案 0 :(得分:0)
我不确定。在Java继承中,实例只能是一个类。由于供应商和客户继承自组织,“所有”供应商和“所有”客户都是组织。
供应商查询将加入组织和供应商表格以构建供应商实例。
答案 1 :(得分:0)
您的数据模型错误。供应商不是组织的子类型,而是组织所扮演的角色。
组织可以扮演许多角色,例如客户,供应商,供应商,雇主。