Создание таблиц MySQL с помощью Spring + Hibernate - PullRequest
1 голос
/ 09 декабря 2010

Мы столкнулись со следующей ситуацией.

Обратите внимание, что я знаю, что зарезервированные слова не должны использоваться для имен таблиц, но я задаю вопрос в любом случае из любопытства больше, чемчто угодно.

Мы используем Spring + Hibernate для управления нашей базой данных.Я добавляю новую модель в базу данных под названием Group .Итак, я определяю свою модель как:

@Entity
@Table(name = "group")
public class Group {
    ...
}

Теперь проблема заключается в том, что при воссоздании таблиц генерируемый SQL выглядит следующим образом:

create table group (...)

К сожалению, это не такразрешено в MySQL, поскольку group является зарезервированным словом.Правильный код SQL должен быть следующим:

create table `group`(...)

Можно ли мне это сделать?

Ответы [ 2 ]

2 голосов
/ 09 декабря 2010

Вы можете заставить Hibernate избегать идентификаторов, выполнив это:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-quotedidentifiers

По сути, вы можете сами цитировать их, и тогда Hibernate будет использовать соответствующую технику цитирования в соответствии с диалектом

0 голосов
/ 09 декабря 2010

Вы можете попытаться реализовать свой собственный org.hibernate.cfg.NamingStrategy, который добавляет обратные ссылки ко всем таблицам. - Но я уверен, что это злоупотребляет классом NamingStrategy.

...