0

Hibernateでは、同じクラスの2つのプロパティを使用して同じ列をマップすることができ、クエリで両方を参照する可能性がありますか?無意味に聞こえますが、私がしなければならないことには価値があります。下の例では、2番目のゲッターを@Transientとマークして、2番目のゲッターを保持できますが、クエリでエイリアスが失われるため、「myPropertyAliasOne」と「myPropertyAliasTwo」の両方を保持したいと思います。

@Entity
public MyEntity {

   private String myProperty;

   @Column(name="ACTUAL_VALUE")
   public String getMyPropertyAliasOne(){
        return myProperty;
   }

   @Transient
   public String getMyPropertyAliasTwo(){
        return myProperty;
   }
}     
4

1 に答える 1

0

1つの列を2つのプロパティにマップする場合は、一方をマップし、もう一方を最初の値で設定してみませんか。

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

この場合、これらのプロパティは常に同じです。(しかし、私にはわかりません。なぜこの冗長性が役立つのですか?

于 2012-08-09T08:27:33.337 に答える