2012-08-09 52 views
0

在休眠是可以映射相同的列與同一類的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

如果你想有一列被映射到兩個屬性,你爲什麼不只是將它們映射之一,將其他與第一的價值。

@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; 
    } 
} 

在這種情況下,你必須手動這些屬性總是相同的。 (但我不明白,爲什麼這個冗餘是有用的?