Tablas con nombre reservado en entidades en Spring Boot

Escenario

Tenemos una aplicación corriendo sobre Spring Boot que usa Hibernate como ORM. Una de las tablas se llama Group, se utiliza para almacenar los distintos grupos a los que puede pertenecer un usuario.

Problema

La entidad de java que representa la tabla de grupos tiene esta pinta: Sabía que group es una palabra reservada en SQL, pero también pensaba que Hibernate iba a ser lo bastante listo como para, por defecto, colocar entre acentos graves «`» los nombres de las tablas. Pues no es así, ya que la aplicación no arrancaba por el siguiente error: Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group group0_ where group0_.name='READ_FILE_WARNING_NOTIFICATIONS'' at line 1

Solución

Ésta es sencilla, basta con añadir la anotación Table a la clase y especificar el nombre de la tabla de esta manera:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *