hsqldb не поддерживает атрибут columnDefinition для столбца

У меня уже была база данных hsql для тестирования, и я добавил к ней пару таблиц.

Я правильно обновил файлы .dtd и .xml, но не смог запустить junits, поскольку «NoSuchTableException» выбрасывался из тестовых случаев dbunit.

В классе DAO я добавил следующее свойство для таблицы виновников.

@Column(name = "keyword_id", columnDefinition = "int REFERENCES master_keyword(keyword_id)")

Как только я удалил атрибут columnDefinition, junit заработал нормально. Я понимаю, что columnDefinition зависит от базы данных, значит ли это, что мы не должны использовать это при запуске junits?

Я потратил на это много времени. Проблема решена, но есть мысли по этому поводу?


person instanceOfObject    schedule 17.02.2012    source источник


Ответы (1)


Если ваши модульные тесты используют аннотации для автоматического создания таблиц базы данных, то, очевидно, учитывается атрибут columnDefinition: это его цель.

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

Похоже, вы хотите определить здесь ограничение внешнего ключа. Почему бы тогда не использовать ассоциацию OneToOne или ManyToOne?

person JB Nizet    schedule 17.02.2012
comment
Я хочу избежать этого ограничения в коде (по какой-то причине), я просто хотел иметь определение здесь и это ограничение в самой таблице. Он отлично работает в devo/prod, но junits терпит неудачу. - person instanceOfObject; 17.02.2012