Datanucleus / Roo / GWT - Проблемы с сохранением компонентов с полями даты - PullRequest
0 голосов
/ 14 июля 2010

Я попытался запустить пример приложения GWT / Google Appengine - расходы, сгенерированные ROO с помощью команды roo "script-1.

Это приложение использует ядро ​​данных - 1.1.6 и HSQLDB в качестве базы данных в памяти.

Мне удалось запустить приложение и успешно сохранить и получить объекты Employee. (Эти объекты Employee не имеют полей типа даты, но имеют только строковые и целые поля).

Но у меня возникают проблемы с хранением объектов «Отчет» в приложении, выводящем сообщение об ошибке «Неожиданная ошибка сервера». При просмотре журналов и отладки эта неожиданная ошибка произошла из-за попытки сохранить нулевое значение в поле типа даты, отличном от нуля (поле даты «создано»)

Вот где все усложняется ... Глядя на исходный код этого класса Report, поле даты «create» не указано как поле «not null» (отсутствует аннотация @notnull). Чтобы подтвердить это, я изменил базу данных на Postgresql, проверил автоматически сгенерированную схему и обнаружил, что это поле даты действительно помечено как «не ноль».

Это означает, что DataNucleus при генерации автоматической схемы всегда помечает поля даты как «не нулевые».

Я также подтвердил это, изменив библиотеку ORM на Hibernate, и тот же код работал без каких-либо проблем и смог сохранить объекты отчета с полями даты в HSQL и Postgres DB.

Это ошибка с DataNucleus, и кто-нибудь еще видит эту проблему?

1 Ответ

1 голос
/ 15 июля 2010

Я использовал DataNucleus в качестве JPA со многими полями даты (как отметка времени или DATE) и у меня не было никаких проблем.SchemaTool всегда создает их как «NULL» в DDL (допускает пустые значения).Так как вы не цитируете класс Entity или журналы, никакой помощи больше нет

...