我尝试运行示例GWT / Google Appengine应用程序 - ROO使用roo命令“script expenses.roo”生成的费用(建议here)...
此应用使用datanucleus-core - 1.1.6和HSQLDB作为内存数据库。
我能够运行应用程序并成功存储和检索Employee对象。 (这些Employee对象没有任何日期类型字段,但只有字符串和int字段。)
但是我在存储“报告”对象时遇到问题,应用程序打印出错误消息“意外的服务器错误”。查看日志和调试,发生此意外错误是因为尝试在非空日期类型字段中存储null('created'日期字段)
这是复杂的地方......查看此Report类的源代码,“created”日期字段未指定为“not null”字段(缺少@notnull注释)。为了确认这一点,我将数据库更改为Postgresql并检查了自动生成的模式,发现此日期字段确实标记为“非空”。
这意味着在自动模式生成期间DataNucleus始终将日期字段标记为“not null”。
我通过将ORM库更改为Hibernate进一步确认了这一点,并且相同的代码解决了所有问题,并且能够在HSQL和Postgres DB中保存包含日期字段的报表对象。
是否是DataNucleus的错误,是否有其他人看到此问题?
答案 0 :(得分:1)
我使用DataNucleus作为JPA,有许多日期字段(如时间戳或DATE),并且完全没有问题。 SchemaTool总是在DDL中将它们创建为“NULL”(允许空值)。由于您没有引用实体类或日志,因此无法提供更多帮助