设置:Hibernate 4.0 (JPA 2.0)、Java EE 6
我有以下问题:我有一个用 @Embeddable 注释的“HandAttributes”类,它包含很多 boolean 属性。在另一个类“Person”中,我想将此类嵌入两次。这个想法是,“属性”类中的值代表“人”可以在其左手和右手上拥有的属性。
据我了解 @AttributeOverride 的可能性,我可以覆盖 HandAttributes 类中的每个属性,并给它们一个新的列名称,即“BrokenNailRight”和“BrokenNailLeft”。但正如我所提到的,这些属性有很多,所以我不想显式地全部覆盖它们。
是否可以通过提供某种命名模式来覆盖 Embeddable 类中的所有属性?就像将字符串“left”添加到所有列或类似的内容。
我希望这个问题是可以理解的,我期待您的任何想法!
最佳答案
Is there a possibility to Override all attributes in the Embeddable class?
我从未听说过这样的事情,并且非常确定这是不可能的。
您确定要嵌入这些对象吗?这会产生很多真正静态的代码,最好这样编写:
public class Human {
Hand leftHand;
Hand rightHand;
...
}
甚至
public class Alien {
Map<ConnectedBodyPart, Hand> hands
...
}
这还应该启用 getBrokenNails()
的通用版本...
关于java - Hibernate @AttributeOverrides 多个属性而不显式命名每个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11452017/