Eu tenho um Java bean. Agora, quero ter certeza de que o campo deve ser exclusivo.
Estou usando o seguinte código:
@UniqueConstraint(columnNames={"username"})
public String username;
Mas estou recebendo algum erro:
@UniqueConstraint is dissallowed for this location
Qual é a maneira correta de usar restrições exclusivas?
Nota: Estou usando o framework de reprodução.
Respostas:
Para garantir que um valor de campo seja exclusivo, você pode escrever
A anotação @UniqueConstraint é para anotar várias chaves exclusivas no nível da tabela, e é por isso que você recebe um erro ao aplicá-lo a um campo.
Referências (JPA TopLink):
fonte
Você pode usar no nível da classe com a seguinte sintaxe
fonte
Atualmente, estou usando o framework play também com as anotações hibernate e JPA 2.0 e esse modelo funciona sem problemas
Espero que tenha ajudado.
fonte
Nota: No Kotlin, a sintaxe para declarar as matrizes nas anotações usa em
arrayOf(...)
vez de{...}
Nota: A partir do Kotlin 1.2, é possível usar a
[...]
sintaxe para que o código se torne muito mais simplesfonte
Caminho1:
- Aqui, a Coluna1 e a Coluna2 atuam como restrições exclusivas separadamente. Ex: se a qualquer momento o valor da coluna1 ou da coluna2 corresponder, você receberá o erro UNIQUE_CONSTRAINT.
Way2:
- Aqui, os valores combinados da coluna1 e da coluna2 atuam como restrições únicas
fonte
Restrições exclusivas usadas apenas para criar chave composta, que será única. Representará a tabela como chave primária combinada como única.
fonte
você pode usar @UniqueConstraint no nível da classe, para a chave primária combinada em uma tabela. por exemplo:
classe pública ProductAttribute {}
fonte
A anotação exclusiva deve ser colocada logo acima da declaração do atributo. UniqueContraints entra na anotação @Table acima da declaração da classe de dados. Ver abaixo:
fonte