JPA继承IdClass位置最佳实践

时间:2014-02-24 09:48:02

标签: java jpa orm jpa-2.0

在两个场景中定义@IdClass注释的位置?


在我对案例1的看法中:Entity1和Entity2都应该有自己的@IdClass

因为Entity2也有主键。


和案例2:MapedSuperClass2应该有@IdClass

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


我是对的吗?

案例1:

enter image description here

案例2:

enter image description here

1 个答案:

答案 0 :(得分:0)

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

在第二种情况下,考虑在第二个MapperSuperClass中创建@IdClass,以便在所有子类中使用,因为你不需要在键中添加更多的fiel,这应该可行。