Как определить уникальное ограничение в спящем режиме для этой ситуации? - PullRequest
1 голос
/ 23 февраля 2012

Destination и DestinationAlias ​​на уровне базы данных выглядят так:

DestinationAlias and Destination

В DestinationAlias ​​(idDestination, псевдоним) является уникальным.

POJO для DestinationAlias:

@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"?

1 Ответ

2 голосов
/ 23 февраля 2012

Уникальная аннотация ограничения ожидает список имен столбцов.Так что в вашем случае нет, это не должно быть «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

...