У меня есть проект, который я строю с помощью maven, и мне нужно сгенерировать схему с помощью инструмента hbm2ddl из hibernate3-maven-plugin.
Мне нужно создать базу данных с таблицей с именем Порядок , как ключевое слово SQL, и я не знаю, как заставить maven цитировать эту таблицу при генерации сценария. Я выполнил поиск и обнаружил, что в hibernate есть свойство сообщать об этом инструменту hbm2ddl, но я не могу сказать плагину использовать его:
<property name="hbm2ddl.keywords">auto-quote</property>
Если я не цитирую таблицу, hbm2ddl генерирует скрипт:
create table Order (orderId varchar(36) not null, orderCode integer, customer varchar(36) not null, supplier varchar(36) not null, product varchar(36) not null, forecast float, dateRaised date not null, dateDispatched date, dateReceived date, quantityOrdered double precision not null, quantitySent double precision, primary key (orderId)) ENGINE=InnoDB;
, который не компилируется (из-за очевидной синтаксической ошибки):
02:51:41,264 ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table Order (orderId varchar(36) not null, orderCode integer, customer varchar(36) not null, supplier varchar(36) not null, product varchar(36) not null, forecast float, dateRaised date not null, dateDispatched date, dateReceived date, quantityOrdered double precision not null, quantitySent double precision, primary key (orderId)) ENGINE=InnoDB
02:51:41,264 ERROR org.hibernate.tool.hbm2ddl.SchemaExport - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order (orderId varchar(36) not null, orderCode integer, customer varchar(36) not' at line 1
Это часть файла pom.xml:
<configuration>
<components>
<component>
<name>hbm2java</name>
<implementation>annotationconfiguration</implementation>
<outputDirectory>src/main/java</outputDirectory>
</component>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
<outputDirectory>src/main/resources</outputDirectory>
</component>
<component>
<name>hbm2doc</name>
<implementation>annotationconfiguration</implementation>
<outputDirectory>docs/html/hibernate</outputDirectory>
</component>
</components>
<componentProperties>
<create>true</create>
<drop>true</drop>
<configurationfile>src/main/resources/hibernate.cfg.xml</configurationfile>
<propertyfile>src/main/resources/database.properties</propertyfile>
<jdk5>true</jdk5>
<outputfilename>amasbe_db.sql</outputfilename>
</componentProperties>
</configuration>
Любые советы или помощь действительно приветствуются.
Спасибо!