Tengo un bean Java. Ahora, quiero asegurarme de que el campo sea único.
Estoy usando el siguiente código:
@UniqueConstraint(columnNames={"username"})
public String username;
Pero recibo un error:
@UniqueConstraint is dissallowed for this location
¿Cuál es la forma correcta de usar restricciones únicas?
Nota: estoy usando play framework.
Respuestas:
Para asegurarse de que un valor de campo sea único, puede escribir
La anotación @UniqueConstraint es para anotar múltiples claves únicas en el nivel de tabla, por lo que obtiene un error al aplicarlo a un campo.
Referencias (JPA TopLink):
fuente
Puede usar a nivel de clase con la siguiente sintaxis
fuente
Actualmente estoy usando play framework también con hibernación y anotación JPA 2.0 y este modelo funciona sin problemas
Espero que haya ayudado.
fuente
Nota: en Kotlin, la sintaxis para declarar las matrices en anotaciones se usa en
arrayOf(...)
lugar de{...}
Nota: A partir de Kotlin 1.2, es posible usar la
[...]
sintaxis para que el código sea mucho más simplefuente
Way1:
- Aquí, tanto Column1 como Column2 actúan como restricciones únicas por separado. Por ejemplo: si en algún momento el valor de la columna1 o la columna2 coincide, obtendrá un error UNIQUE_CONSTRAINT.
Way2:
- Aquí, los valores combinados de column1 y column2 actúan como restricciones únicas
fuente
Restricciones únicas utilizadas solo para crear claves compuestas, que serán únicas. Representará la tabla como clave primaria combinada como única.
fuente
puede usar @UniqueConstraint en el nivel de clase, para la clave primaria combinada en una tabla. por ejemplo:
ProductAttribute de clase pública {}
fuente
La anotación única debe colocarse justo encima de la declaración de atributo. UniqueContraints entra en la anotación @Table encima de la declaración de clase de datos. Vea abajo:
fuente