Несколько ограничений на уникальность данных в JPA

Существует ли способ указать использование JPA, что должно быть несколько ограничений на уникальность данных на различные наборы столбцов?

@Entity
@Table(name="person", 
       uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"}))
public class Person {
    // Unique on code and uid
    public String code;
    public String uid;

    // Unique on username
    public String username;

    public String name;
    public String email;
}

Я видел быть в спящем режиме определенной аннотации, но я стараюсь избегать поставщика определенные решения, как мы все еще решаем между, в спящем режиме и datanucleus.

77
задан Jacob 4 August 2010 в 11:52
поделиться

1 ответ

Атрибут @Table uniqueConstraints на самом деле принимает их массив. Ваш пример - это просто сокращение для массива с одним элементом. В противном случае это будет выглядеть так:

@Table(name="person",  uniqueConstraints={
   @UniqueConstraint(columnNames={"code", "uid"}),
   @UniqueConstraint(columnNames={"anotherField", "uid"})
})

Если ограничение уникальности основано только на одном поле, вы можете использовать @Column (unique = true) в этом столбце.

124
ответ дан 24 November 2019 в 10:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: