Я использую Hibernate и у меня есть постоянный класс под названием «Пользователь».Поскольку это ключевое слово, я пометил атрибут @Entity другим именем (я видел, например, этот вопрос: Невозможно использовать таблицу с именем "user" в postgresql hibernate )
Однако я все еще сталкиваюсь с проблемами, потому что этот класс расширяет другой, и похоже, что hibernate все еще пытается использовать «пользователя» в качестве имени столбца и запутывается:
@Entity( name = "XonamiUser" )
public class User extends PropertyContainer {
...
и
@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;
...
Другие мои классы, расширяющие PropertyContainer, работают нормально.
Это ошибка в спящем режиме?Есть ли способ обойти рефакторинг?Спасибо!
Вот ошибки, которые я вижу (слегка исправленные):
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