2012-02-23 15 views
1

先とDestinationAlias:DestinationAliasでこの状況では、休止状態で一意制約をどのように定義するのですか?このようなデータベースレベルの外観で

DestinationAlias and Destination

、(idDestination、別名)がユニークです。 DestinationAliasため

POJO:

@Entity 
@Table(name = "DESTINATIONALIAS", 
uniqueConstraints = { @UniqueConstraint(columnNames={"IDDESTINATION", "ALIAS"}) } 
     ) 
public final class DestinationAlias { 

// .. 

    @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.ALL}) 
    @JoinColumn(name="IDDESTINATION", nullable=false) 
    public Destination getMainCity() { 
     return mainCity; 
    } 
} 

ユニーク制約がIDDESTINATIONまたは "MAINCITY" である必要がありますか?

答えて

2

一意性制約注釈では、列名のリストが必要です。あなたの場合、そうではなく、MAINCITYであってはなりません。また、一部のデータベースでは大文字と小文字が区別されるため、実際のデータベースフィールドと同じケースを使用することをお勧めします。だからあなたのコードは次のようになります。

@Entity 
@Table(name = "DestinationAlias", uniqueConstraints = { @UniqueConstraint(columnNames = { 
     "idDestination", "alias" }) }) 
public final class DestinationAlias { 
    // .... 
} 

参照:http://docs.oracle.com/javaee/6/api/javax/persistence/UniqueConstraint.html

関連する問題