Существует ли способ указать использование 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.
Атрибут @Table
uniqueConstraints
на самом деле принимает их массив. Ваш пример - это просто сокращение для массива с одним элементом. В противном случае это будет выглядеть так:
@Table(name="person", uniqueConstraints={
@UniqueConstraint(columnNames={"code", "uid"}),
@UniqueConstraint(columnNames={"anotherField", "uid"})
})
Если ограничение уникальности основано только на одном поле, вы можете использовать @Column (unique = true)
в этом столбце.