在两种情况下,哪里定义@IdClass批注?



在我看来,情况1:Entity1和Entity2都应具有自己的@IdClass

因为Entity2也有主键。



对于情况2:MapedSuperClass2应该具有@IdClass

因为Entity1和Entity2共享相同的主键。



我说的对吗?

情况1:



情况2:

最佳答案

在第一种情况下,当您在父类中定义IdClass时,您无法添加甚至删除子类中键的字段,因此规范不允许在Entity2中向键添加新值。

在第二种情况下,考虑在第二个MapperSuperClass中创建@IdClass以便在所有子类中使用,因为您不需要向密钥添加更多内容,这应该可以工作。

关于java - JPA继承IdClass位置最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21984055/

10-13 07:54