Tengo la siguiente definición para un campo de id. En una entidad que está asignada a una tabla en HSQLDB.Hibernate @generatedvalue para HSQLDB
...
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "ID")
private Integer id;
...
Pero esto no parece generar una identificación única; en su lugar, se intenta insertar un nulo en la columna que da como resultado un error. Si, de forma manual, creo una secuencia y una estrategia de generación para usar esa secuencia, los datos se conservan como se esperaba.
No una estrategia de generación de auto implica que el proveedor (hibernate en este caso) elegirá automáticamente el enfoque correcto y hará todo el trabajo pesado según sea necesario (crear secuencia, usar un enfoque nativo o lo que funcione para ese particular plataforma)? ¿Es mi entendimiento incorrecto?
* El dialecto se ha configurado en org.hibernate.dialect.HSQLDialect * Creé la tabla con el administrador de base de datos HSQL. Solo es normal crear una dirección de tabla ... * Creé la tabla manualmente y no a través de Hibernate * Sí, a través de la persistencia de entitymanager. No había establecido la columna de identificación como identidad en mi caso, simplemente configúrelo como clave principal. – calvinkrishy
Para algunos, el comando DDL que se genera en mi caso es: Empleados de CREATE TABLE (id BIGINT NOT NULL, nombre VARCHAR (50) NOT NULL, CONSTRAINT PK_EMPLOYEES PRIMARY KEY (id)); No se usa identidad en absoluto. – Alexandr