Cual es la diferencia entre usar GenerationType.IDENTITY y GenerationType.SEQUENCE?

David German LLicahua Huamani

David German LLicahua Huamani

Pregunta
studenthace 5 años

Cual es la diferencia entre usar GenerationType.IDENTITY y GenerationType.SEQUENCE?

3 respuestas
para escribir tu comentario
    Hinder Adrian Alvarez Perlaza

    Hinder Adrian Alvarez Perlaza

    studenthace 5 años

    Genial el dato que da fernando, no sabía nada de esto :o.

    Alejandro Ramírez

    Alejandro Ramírez

    teacherhace 5 años

    Como bien menciona Fernando, cuando usas GenerationType.IDENTITY la base de datos se encarga de auto-incrementar el valor cada que hace un INSERT.   Por su parte, GenerationType.SEQUENCE ejecuta una sentencia SELECT para verificar el valor de la secuencia (este proceso no tiene impacto en el rendimiento de la aplicación) y luego se le asigna al entity.   Te dejo este video donde explican a detalle las características y comparaciones entre las diferentes estrategias.

    Helí Fernando Jerez Rincón

    Helí Fernando Jerez Rincón

    studenthace 5 años

    La diferencia esta en que JPA cuando ud haga save:

    1. si es **IDENTITY **el no hace nada, la BD lo hace todo
    2. si es **SEQUENCE **el hace un query para obtener el id de la secuencia y fija el id en el insert.
Curso de Java Spring

Curso de Java Spring

Construye una API REST con Java Spring para gestionar productos en un supermercado. Aprende a mapear objetos, manejar bases de datos con Spring Data, y aplicar principios de desarrollo profesional. Expone y controla servicios usando Swagger y Heroku. Ideal para profundizar en el desarrollo de aplicaciones empresariales robustas y seguras.

Curso de Java Spring
Curso de Java Spring

Curso de Java Spring

Construye una API REST con Java Spring para gestionar productos en un supermercado. Aprende a mapear objetos, manejar bases de datos con Spring Data, y aplicar principios de desarrollo profesional. Expone y controla servicios usando Swagger y Heroku. Ideal para profundizar en el desarrollo de aplicaciones empresariales robustas y seguras.