На самом деле я не хочу создавать запись, используя мой собственный BO. Есть ли лучший способ заставить Spring Security или Hibernate создавать все необходимые таблицы во время тестового запуска?
Если вы не планируете использовать Hibernate для взаимодействия с этими таблицами, то вряд ли имеет смысл иметь для них сущности.
Таким образом, я предлагаю разместить сценарий создания таблиц Spring Security в файле import.sql
и поместить этот файл в корень пути к классам, и Hibernate автоматически выполнит его после экспорта схемы. Подробнее см. Spring / Hibernate: вставка тестовых данных после создания DDL (просто поместите операторы DDL в одну строку).
Спасибо, Паскаль, это именно то, что я искал, однако, это не работает. Я использую maven и помещаю import.sql в корень ресурсов dir (content: CREATE TABLE justatest (символ меняется (50) NOT NULL);). Я тоже поставил. Запуск тестовых копий mvn import.sql в целевой каталог ... но ничего не происходит. logback [debug] вообще не упоминает import.sql. Есть идеи, где я иду не так? (Hibernate V 3.5.1-Final)
Я использую эту функцию с Maven и не могу воспроизвести вашу проблему. У меня hbm2ddl.auto
установлено значение create
, мой файл import.sql
находится в src/test/resources
, и он выполняется, как и ожидалось, в конце экспорта схемы при выполнении тестов. Вот запись в журнале, которую я получаю (используя logback):
20:44:37.949 [main] INFO o.h.tool.hbm2ddl.SchemaExport - Executing import script: /import.sql