2011-11-07 11 views
1

埋め込み属性が同じ列にマップされるため、Hibernateはテーブルの作成時に例外をスローします。以下のようにHibernate:エンティティのマッピングで繰り返し列|同じタイプの2つの組み込みクラス

クラスの距離は、クラス経路で二回埋め込まれている。

@Embeddable 
public class Distance implements Serializable{ 
    private static final long serialVersionUID = -8466495790824502626L; 
    @Column(nullable = false) 
    protected Integer distInSec; 

    public Distance() { 
     super(); 
    } 
} 


@Entity 
public class Route{ 
    @Column(nullable=false) 
    protected Distance currentDetour; 

    @Column(nullable=false) 
    protected Distance currentDist;  
} 

Hibernateはテーブルを作成するとき、同じ列「distInSec」にcurrentDistのcurrentDetourのdistInSec同様にマップしようとするにテーブルルート。したがって、エラーorg.hibernate.MappingException:エンティティ:のマッピングの繰り返し列がスローされます。

可能であれば、常にcurrentDetour_distInSecとcurrentDist_distInSecという名前の列が生成されるように構成を変更したいと考えています。誰にもそうする方法がありますか?事前

答えて

2

はこの作品

3

おかげで列名をカスタマイズする@AttributeOverrideを使用してください。命名戦略としてDefaultComponentSafeNamingStrategyを使用して

+0

問題を解決しますが、デフォルトの設定ではありません。とにかくありがとうございました! –

関連する問題