我有一个如下所示的域名模型:
Instruction
| \
Money Other
/ \
Unit Cash
我希望使用JPA将此模型映射到我的数据库。
所有类都映射到数据库中的同一个表,(T_INSTRUCTION)。
所以我开始使用jpa的SINGLE_TABLE inhertance策略。使用orm xml Money
分隔Other
和discriminate-column="MONEY_TYPE_ID"
类。
我的问题是我还想要分类子Cash
和Unit
但他们在不同的栏目“CASH_TYPE_ID
”上区别对待。
扫描文档这对我来说似乎不太可能,但我想知道有没有人有任何技巧或变通方法来实现这一点?
干杯
答案 0 :(得分:1)
解决方法可能是为每个子类设置不同的鉴别器值,并且只有一个鉴别器列。即money = 1,other = 2,unit = 3,cash = 4
答案 1 :(得分:1)
在进一步研究这个问题之后,目前的JSR规范中没有解决这个问题的方法。
所以我最终决定做的是使用jpa单表继承来表示'Instruction
''Money
'和'Other
'类型然后允许' Cash
'和'Unit'
子类型的简单inhert来自这些。 (即)'discriminate-column="MONEY_TYPE_ID"'
然后使用'cash'和'unit'中的构造函数设置映射到CASH_TYPE_ID
的字段。
PS:我稍后会发布代码