Pregunta

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

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

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

¿Fue útil?

Solución

  

¿Se escapó este nombre?

no en la especificación JPA que lo dice, si su proveedor lo hace, esto es específico del proveedor.

  

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

Obviamente, sería (siempre y cuando no se utilice otra palabra clave reservada por supuesto). Sin embargo, si está utilizando un proveedor JPA 2.0, hay una forma estándar para obtener un nombre de objeto db escapó, con comillas dobles:

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

En JPA 1.0, no hay nada estándar, que depende de su proveedor JPA. Por ejemplo, Hibernate utiliza acentos abiertos:

@Table(name="`Group`")
  

O debería cambiar el nombre de la clase?

No. El nombre de la tabla de una entidad por defecto es el nombre de la entidad, pero se puede controlar mediante la anotación @Table como vimos. Así, no hay necesidad de cambiar el nombre de clase de entidad.

Otros consejos

Usted no tiene que cambiar el nombre de la clase - y no debe - el nombre que ha elegido refleja su dominio de la mejor manera, y que no deben cambiar debido a las limitaciones de la herramienta o marco, en caso de que la herramienta / marco proporciona una manera de evitar el "choque". JPA proporciona tal manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top