加入继承策略

时间:2019-05-19 16:20:26

标签: java hibernate spring-data-jpa

我在Spring项目中使用的继承类型等于join。我有一个名为Identifier的类,该类有4种类型,分别是(直接,间接,紧急,信息)。虽然插入一个标识符与一种类型,如直接或其他是可以的。但是我想插入具有相同标识符ID的多种类型,这是不允许的,因为id是主键,不能重复。我怎样才能实现这个建议?

也许另一种继承策略可以实现所要求的目标。

@Table(name = "identifier")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TYPE_IDEN", discriminatorType = DiscriminatorType.STRING, length = 2)

实际上,无论如何我都会被阻止。

1 个答案:

答案 0 :(得分:0)

您使用继承解决方案为问题建模。您有一个带四个孩子的超级班。问自己: java 中的任何子类是否可以同时具有多个类型?考虑到问题中写的是什么,这就是您要尝试做的,这是不可能的。

如果您希望自己的班级拥有一组以上的特征,则必须重新考虑问题建模的方式。

如果您需要一个“标识符”来容纳任意数量的“类型”,则也许应该使用合成,因此它不是“标识符” “直接”或“间接”,而是将包含“直接” 和/或“间接”。

这只是一个建议,有多种解决方案,我不了解您的所有需求,但请记住,您当前的建模方式不允许您具有所描述的行为。