Estoy usando Hibernate y tengo una clase persistente llamada "Usuario". Dado que esta es una palabra clave, he marcado el atributo @Entity con un nombre diferente (que he visto, por ejemplo, esta pregunta: Unable to use table named "user" in postgresql hibernate)ERROR: error de sintaxis en o cerca del "usuario"
Sin embargo, todavía se meten en problemas porque esta clase se extiende otra, y parece como Hibernate todavía está tratando de utilizar "usuario" como nombre de columna y conseguir en mal estado:
@Entity(name = "XonamiUser")
public class User extends PropertyContainer {
...
y
@MappedSuperclass
public abstract class PropertyContainer implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected long key;
/** tags */
@ElementCollection
protected Set<String> tags;
@ElementCollection
protected Set<String> searchList;
...
Mis otras clases que se extienden PropertyContainer parecen funcionar bien.
¿Este es un error en Hibernate? ¿Hay alguna forma de evitar la refactorización? ¡Gracias!
Éstos son los errores que estoy viendo (ligeramente limpiado):
WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - Batch entry 0 insert into user_search_list (user, search_list) values ('1', 'bjorn') was aborted. Call getNextException to see the cause.
WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: syntax error at or near "user"
Position: 31
@TJ, agregué los errores que me llevan a creer que todavía está usando el nombre de la columna. –