我有一个EndangeredFish
实体,它使用JOINED继承类型扩展Fish
实体。
一段时间后,我们要将Fish
更新为EndangeredFish
(numberOfSpeciesLeft
字段)。
Fish fish = fishRepository.findOne(fishId);
EndangeredFish endangeredFish = fishToEndangeredFish.apply(fish);
endangeredFish.setNumberOfSpeciesLeft(500);
endangeredFish.setId(fishId);
Fish updatedFish = fishRepository.save(endangeredFish);
这会在ENDANGERED_FISH
表中插入一个新条目(如预期的那样),但在FISH
表中插入一个我不希望的新条目。
我想知道我的案例是否适合实体继承,或者我应该在开始时使用一个FISH
null
字段并稍后更新。
numbOfSpeciesLeft
答案 0 :(得分:0)
我想知道我的案例是否适合实体继承,或者我应该在开始时使用一个带有
null
numbOfSpeciesLeft字段的FISH表并稍后更新。
不,它不适合继承。如果你的实例基本上应该在其生命周期中改变它的类型,那么你使用的是继承错误。
null
的{{1}}值听起来像是一个合理的开始。如果您有更多信息需要跟踪,它可能演变为numbOfSpeciesLeft
的可选引用。这可以映射为一对一的关系或嵌入式。