¿Se escapó este nombre?
hay nada en la especificación JPA que lo dice, si su proveedor lo hace, esto es específico del proveedor.
¿El uso de un nombre de tabla diferente de 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 escapado, con comillas dobles:
@Table(name="\"Group\"")
En JPA 1.0, no hay nada estándar, que depende de su proveedor JPA. Por ejemplo, Hibernate usa 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. Por lo tanto, no es necesario cambiar el nombre de clase de su entidad.
Si utiliza comillas como esa, no se creará ninguna tabla de combinación (es decir, relaciones OneToMany) ("Grupo" _Members, es decir, es un nombre no válido). Esta solución es un truco, y yo recomendaría no usar nombres reservados para Tablas. Los nombres de campo plantean un problema menor. – Steven