validos son significado reservadas reglas query que para palabras namedquery lenguaje las identificadores ejemplos cuáles clave java orm jpa java-ee jpql

java - son - Usar palabras clave JPQL reservadas con JPA



para que son las palabras reservadas en java (2)

Tengo una clase de entidad llamada "Grupo" y NetBeans me advierte "El nombre de la tabla de la entidad es una palabra clave reservada Java Persistence QL".

Un caso similar sería el uso de palabras clave SQL reservadas.

¿Se escapará este nombre? ¿El uso de un nombre de tabla diferente resolvería el problema @Table (name = "otherName")? ¿O debería cambiar el nombre de la clase?


¿Se escapará este nombre?

No hay nada en la especificación de JPA que lo indique, si su proveedor lo hace, esto es específico del proveedor.

¿El uso de un nombre de tabla diferente resolvería el problema @Table (name = "otherName")?

Obviamente, lo haría (siempre y cuando no use otra palabra reservada por supuesto). Pero si está utilizando un proveedor JPA 2.0, hay una forma estándar de obtener un nombre de objeto db escapado, con comillas dobles:

@Table(name="/"Group/"")

En JPA 1.0, no hay nada estándar, depende de su proveedor de JPA. Por ejemplo, Hibernate usa backticks:

@Table(name="`Group`")

¿O debería cambiar el nombre de la clase?

No. El nombre de la tabla de una entidad se establece de manera predeterminada en el nombre de la entidad, pero puede controlarlo usando la anotación @Table como vimos. Por lo tanto, no es necesario cambiar el nombre de clase de su entidad.


No tiene que cambiar el nombre de la clase, y no debería hacerlo, el nombre que ha elegido refleja su dominio de la mejor manera, y no debe cambiarlo debido a las limitaciones de la herramienta o el marco, en caso de que la herramienta / marco proporcione un forma de evitar el "choque". JPA proporciona tal manera.