Модель спящего режима для спящего режима для Postgres

Я использую Postgres через Hibernate (аннотации), но, похоже, он падает на работу с объектом User:

12:09:16,442 ERROR [SchemaExport] Unsuccessful: create table User (id  bigserial not null, password varchar(255), username varchar(255), primary key (id))
12:09:16,442 ERROR [SchemaExport] ERROR: syntax error at or near "User"

Если я запускаю SQL вручную, мне нужно помещать кавычки вокруг имени таблицы, поскольку пользователь, похоже, является ключевым словом postgres, но как я могу убедить спящий режим сделать это сам?

Спасибо заранее.

Ответы

Ответ 1

При использовании зарезервированных ключевых слов вам нужно избегать имени таблицы. В JPA 1.0 нет стандартизованного способа, и конкретным решением Hibernate является использование обратных ссылок:

@Entity
@Table(name="`User`")
public class User {
    ...
}

В JPA 2.0 стандартизованный синтаксис выглядит следующим образом:

@Entity
@Table(name="\"User\"")
public class User {
    ...
}

Ссылки

Ответ 2

Пользователь ключевое слово, найти лучшее имя или использовать кавычки: "Пользователь". (плохая идея imho, но она работает, если вы делаете это везде)