2
我有一张有三列“A”,“B”和“C”的表格。其中两列(A和B)是表格的组合主键。我为这个表编写了一个Java类,我使用Hibernate将类中的数据映射到表中的数据。我为Embedded(即复合)键创建了另一个类。Hibernate:使用EmbeddedIds复制getters/setters?
这两个类是这样的:
@Entity
@Table(name="SOME_TABLE", schema="SOME_SCHEMA")
public class Outer {
private Key key;
private String a;
private String b;
private String c;
@EmbeddedId
public Key getId() {
return this.key;
}
// Also a setter for Key...
@Column(name="A")
public String getA() {
return this.a;
}
public void setA(final String a) {
this.a = a;
}
// Also setters and getters for B and C.
}
。
看起来好像所有的Hibernate文档都会掩盖getter和setter应该去的地方。 Outer和Key是否应该为组成复合键的值设置setter?如果我在两个地方都有一个setter,那么如果我在Outer上设置A的值,Hibernate是否做了正确的事情(即,在Key上设置值)? Outer.getA/B()和Outer.setA/B()是否应该遵循Key类?
我认为在两个地方设置相同数据的代码实践是不好的编码习惯。这至少是不明确的。我希望Hibernate会为我设置Key类的值,但我想确切地知道。谢谢!
-Joe
谢谢,tscho。我很少使用@Embedded,所以我没有跳到那里的连接。我想,回答我原来的问题,“委托给关键”是方法。 – joemadeus