Por favor ayuda. Tengo una tabla que utiliza valores de clave externa a partir de 0. Cuando trato de generar entidades usando hibernate, siempre comienza el incremento automático desde 1. ¿Hay alguna manera de forzarlo a comenzar desde 0?
Mi clave principal de hibernación actualmente configurada de esta manera:

@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
Long id;
0
Igor 22 abr. 2020 a las 17:12

2 respuestas

SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'

NO_AUTO_VALUE_ON_ZERO afecta el manejo de las columnas AUTO_INCREMENT. Normalmente, genera el siguiente número de secuencia para la columna insertando NULL o 0 en ella. NO_AUTO_VALUE_ON_ZERO suprime este comportamiento para 0, de modo que solo NULL genera el siguiente número de secuencia.

Este modo puede ser útil si 0 ha sido almacenado en la columna AUTO_INCREMENT de una tabla. (Almacenar 0 no es una práctica recomendada, por cierto).

Referencia

Referencia 2

0
Alien 22 abr. 2020 a las 14:26

Estoy de acuerdo con Simon 0 no es un buen valor para una clave primaria. Además, que yo sepa, no habrá forma de configurar Hibernate para hacer esta mala práctica. Pero si realmente desea seguir para comenzar con cero, puede eliminar el aumento automático y hacer: SELECCIONAR MÁX (nombre_columna) FROM nombre_tabla; Y evitarlo. Pero en mi opinión como desarrollador, 0 es un buen valor cuando se trabaja con matrices, etc., pero las PK siempre deben comenzar con 1.

0
Bruno Pezzi 22 abr. 2020 a las 14:27