Я использую сервер MySQL 5.1 и Hibernate 3.5.1 / JPA2 для ORM. Все будет хорошо, пока я не урону некоторые таблицы вручную. С этого момента модульные тесты не выполняются, и Hibernate больше не создает определенные таблицы. Изменение URL-адреса JDBC с
url=jdbc:mysql://localhost:3306/dbjava?createDatabaseIfNotExist=true
до
url=jdbc:mysql://localhost:3306/dbjavanew?createDatabaseIfNotExist=true
решает проблему ... пока я не выполню несколько операций по удалению таблиц :-( Так как я собираюсь использовать MySQL для производства, это не должно происходить вообще.
Удаление dbjava тоже не помогает. Есть предложения?
--- ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Это становится действительно утомленным. Из консоли mysql:
mysql> use dbjava;
Database changed
mysql> show tables;
+---------------------+
| Tables_in_dbjava |
+---------------------+
| aa |
| ba |
| da |
| ea |
| hibernate_sequences |
| ia |
| ka |
| la |
+---------------------+
8 rows in set (0.00 sec)
mysql> create table `cA` (id integer not null, comment varchar(255), name varchar(255), id_d integer, id_f integer, primary key (id)) ENGINE=InnoDB;
ERROR 1050 (42S01): Table 'ca' already exists
Мм? Почему существует таблица 'ca'?!?!? На самом деле, он когда-то существовал ... с тех пор он был отброшен, весь БД был сброшен несколько раз ... почему он все еще существует?
Еще хуже:
mysql> drop table cA;
mysql> ERROR 1051 (42S02): Unknown table 'ca'
Совершенно смущен ...
Однако я кое-что понял: в именах таблиц в спящем режиме используются строчные и прописные буквы (верблюжьи). mysql ответы только в нижнем регистре. Кто-нибудь подтвердит, что mysql не распознает чувствительность к регистру в 2010 году?!?