serial example conectar con autoincrement hibernate postgresql identifier

example - jpa hibernate postgresql sequence



No se puede crear una tabla de base de datos llamada ''usuario'' en PostgreSQL (2)

Es posible especificar el nombre de tabla con JPA con la siguiente sintaxis:

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

Parece que PostgreSQL no permite crear una tabla de base de datos llamada ''usuario''. Pero MySQL permitirá crear dicha tabla.

¿Es eso porque es una palabra clave? Pero Hibernate no puede identificar ningún problema (incluso si configuramos PostgreSQLDialect).


user es una palabra reservada y, por lo general, no es una buena idea utilizar palabras reservadas para los identificadores (tablas, columnas).

Si insistes en hacer eso, debes poner el nombre de la tabla entre comillas dobles:

create table "user" (...);

Pero siempre necesita usar comillas dobles cuando hace referencia a la tabla. Además, el nombre de la tabla es sensible a mayúsculas y minúsculas. "user" es un nombre de tabla diferente a "User" .

Si quieres ahorrarte un montón de problemas usa un nombre diferente. users , user_account , ...

Se pueden encontrar más detalles sobre los identificadores entre comillas en el manual: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS