我正在使用Roo 1.1.5,使用Eclipse STS,这就是我所做的:我从Eclipse创建一个新的Spring Roo项目,在Roo Shell中,我键入以下内容:
persistence setup --provider DATANUCLEUS --database H2_IN_MEMORY
entity --class ~.domain.Task
field string --fieldName description --notNull --sizeMin 3 --sizeMax 512
field boolean --fieldName completed --notNull
controller all --package ~.controller
A more verbose description is in my blog,但上面报道的基本上就是我做的事情。
在Web浏览器中,我可以很好地创建和列出任务,但如果我尝试编辑(更新)任务,则会创建一个新的重复任务...可能是这样的错误已经插入?或者是我做错了什么?
更新:更快我从命令行运行脚本并尝试使用所有持久性提供程序。
$ roo
roo> project --topLevelPackage task --java 6 --projectName Task
roo> persistence setup --provider DATANUCLEUS --database H2_IN_MEMORY
roo> entity --class ~.domain.Task
roo> field string --fieldName description --notNull --sizeMin 3 --sizeMax 512
roo> field boolean --fieldName completed --notNull
roo> controller all --package ~.controller
roo> exit
$ mvn tomcat:run #or mvn jetty:run
结果如下:
Roo + Datanucleus + H2导致错误的应用程序,更新重复记录的结果。
构建失败
无法解析以下工件:org.eclipse.persistence:eclipselink:jar:2.2.0,org.eclipse.persistence:javax.persistence:jar:2.0.3:找不到工件org.eclipse.persistence :eclipselink:jar:在spring-maven-release中发布2.2.0(http://maven.springframework.org/release)
工作,有警告。例如:
WARN [main] openjpa.Runtime - 使用PersistenceUnitInfo注册ClassTransformer时发生错误:名称'persistenceUnit',根URL [file:/ home / stefano / workspace / task4 / target / classes /]。错误已被消耗。要查看它,请将openjpa.Runtime日志级别设置为TRACE。加载时类转换将不可用。
作品
作品...
project --topLevelPackage task --java 6 --projectName Task
persistence setup --provider DATANUCLEUS --database GOOGLE_APP_ENGINE \
--applicationId appid
entity --class ~.domain.Task
field string --fieldName description --notNull --sizeMin 3 --sizeMax 512
field boolean --fieldName completed --notNull
controller all --package ~.controller
exit
mvn gae:run
答案 0 :(得分:1)
你是否正在点击JIRA ROO-1467。 JPA规范留下了很多可以解释的东西。在DataNucleus 3中,有一个标志可以获取各种不同类型的行为以进行合并,以满足所有可能性。
答案 1 :(得分:0)
我已经尝试过你的脚本(但是由于一些未找到的依赖项,我使用了Hibernate而不是datanucleus)。但它对我没有任何问题。
因此,问题可能是数据核心,或者是“在此脚本之外”。