У меня есть класс сущностей, как следующее:Hibernate создать таблицу с именем спасся
@Entity
public class perm {
@Id
@GeneratedValue
private Long id;
private boolean add;
// Getter & Setter are also there ...
}
Когда я начинаю весной (с JPA спящий режим), он генерирует следующий CREATE TABLE заявление для моей базы данных MySQL:
create table perm (id bigint not null auto_increment, add bit not null, primary key (id))
Это создать не получится, так как имя столбца add
не отделался
`
нравится, как обычно.
Обычно я хотел бы создать его вручную с помощью следующего кода:
create table perm (`id` bigint not null auto_increment, `add` bit not null, primary key (`id`))
Конечно, я мог бы создать ImprovedNamingStrategy
для того, чтобы манипулировать все имена столбцов, установив префикс или суффикс к ним. Но тогда все мои колонки имеют этот синтаксис.
Теперь мой вопрос:
Может быть, jpaProperty, который избегает имени столбца, каждый раз, когда он используется внутри синтаксиса sql? Сначала я подумал, что это уже будет сделано, когда я установлю свой
jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");`
Но, по-видимому, это не так. Может быть, для этого есть еще одна настройка?
Я знаю это. Но, как я уже сказал в своем вопросе: я не хочу изменять это имя столбца, а также все имена столбцов по стратегии именования. Я хочу, чтобы hibernate корректно удалял имена столбцов. Потому что я не могу позволить себе столкнуться с подобной ошибкой в будущем. Подобная «ошибка» не сообщается в консоли. hibernate генерирует таблицы и ничего не говорит о том, чтобы не создать ни одного. – christopher2007
Использование '@Column (name =" [add] ")', Hibernate автоматически удалит ваше имя столбца. – Rocherlee
Кроме того, это не проблема с гибернацией. Каждая база данных имеет другой список зарезервированных ключевых слов, поэтому вам нужно самому справиться с этим. – Rocherlee