在hibernate中可以使用同一个类的2个属性映射同一列,并且可以在查询中引用它们吗? 听起来毫无意义,但这对我必须做的事情是值得的。 在底层的例子中,我可以标记第二个getter @Transient来保留第二个getter,但是我会丢失查询中的别名,所以我想保留“myPropertyAliasOne”和“myPropertyAliasTwo”。
@Entity
public MyEntity {
private String myProperty;
@Column(name="ACTUAL_VALUE")
public String getMyPropertyAliasOne(){
return myProperty;
}
@Transient
public String getMyPropertyAliasTwo(){
return myProperty;
}
}
答案 0 :(得分:0)
如果你想将一个列映射到两个属性,为什么不只映射其中一个属性,另一个用另一个属性值设置另一个。
@Entity
public MyEntity {
@Column(name="ACTUAL_VALUE")
private String myProperty1;
private String myProperty2;
public void setMyPropert1(String str){
myProperty1 = str;
myProperty2 = str;
}
public void setMyPropert2(String str){
myProperty1 = str;
myProperty2 = str;
}
public void setMyPropert2(){
myProperty2 = myProperty1;
}
@Transient
public String getMyPropertyAliasOne(){
return myProperty1;
}
public String getMyPropertyAliasTwo(){
return myProperty2;
}
}
在这种情况下,您手动使这些属性始终相同。 (但我不明白,为什么这种冗余很有用?)