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