hibernate.hbm2ddl.auto = создать, не удаляя существующие данные - PullRequest
3 голосов
/ 19 марта 2012

Я использую

<property name="hibernate.hbm2ddl.auto" value="create" />

в моем persistence.xml для моего интеграционного теста, и когда я запускаю интеграционный тест, я получаю

ERROR SchemaExport:386 - Unsuccessful: create table tableName ...
ERROR SchemaExport:387 - Table 'tableName' already exists

но не hbm2ddl.auto = create должен заменить таблицу, если она уже существует? Почему я получаю эту ошибку?

Кстати, на прошлой неделе все работало так, как и ожидалось, поэтому я действительно растерялся из-за того, почему у меня вдруг появилась эта ошибка.

Ответы [ 3 ]

0 голосов
/ 25 февраля 2013

Эта ошибка смущает меня впервые. Но решение довольно простое. Просто измените в своем hibernate.cfg.xml этот параметр:

<property name="hibernate.hbm2ddl.auto" value="create"/>

до

<property name="hibernate.hbm2ddl.auto" value="update"/>
0 голосов
/ 25 марта 2013

Поведение изменилось в Hibernate 3.7 и было возвращено обратно в 4.x Я полагаю, см. https://hibernate.atlassian.net/browse/HHH-6384.

0 голосов
/ 16 ноября 2012

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

...