使用Groovy 1.8,Hibernate JPA注释构建失败
由于JPA Annotation构建错误,我一直坚持使用Groovy 1.7.0而无法升级到众多更新。
我的代码是相当标准的JPA Annotations,并且在过去的groovy版本中运行良好。我希望能够升级到Groovy 1.8.0。如果有人看到并解决了这个问题,我将非常感谢您的帮助!
似乎无法编译所有@ManyToMany注释的@JoinTable部分。
它失败,并且“注释值必须是注释”消息。我查看了JPA javadocs,似乎没有遗漏任何必填字段。我的注释在过去的版本中运行良好。
另外,我正在使用Gant进行构建,我不会将其视为可能的问题吗?
以下是一个示例映射:
@ManyToMany(mappedBy='topics')
@JoinTable(name="screencast_topic",
joinColumns=[@JoinColumn(name="topicId")],
inverseJoinColumns=[@JoinColumn(name="screenCastId")])
@Sort(type=SortType.NATURAL)
编译输出:
[groovyc] Compiling 412 source files to /Users/ben/workspace/nofluff/build/webapps/ROOT/WEB-INF/classes
[groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[groovyc] Abnormal termination of javac.
[groovyc] /var/folders/rs/rsmW8feBHJyH6EPl+V3XME+++TI/-Tmp-/groovy-generated-1581380806855929206-java-source/nfjs/model/Topic.java:84: <b>annotation value must be an annotation</b>
[groovyc] @org.apache.struts2.json.annotations.JSON(serialize=false) @javax.persistence.ManyToMany(mappedBy="topics") @javax.persistence.JoinTable(inverseJoinColumns={"org.codehaus.groovy.ast.AnnotationNode@7997f538"}, name="screencast_topic", joinColumns={"org.codehaus.groovy.ast.AnnotationNode@67646de5"}) @org.hibernate.annotations.Sort(type=org.hibernate.annotations.SortType.NATURAL) public java.util.SortedSet<nfjs.model.screencast.Screencast> getScreencasts() { return (java.util.SortedSet<nfjs.model.screencast.Screencast>)null;}
答案 0 :(得分:2)
groovy开发者意识到这个问题(http://jira.codehaus.org/browse/GROOVY-4768)。 看起来像下一个版本的修复程序。目前的解决方法是制作自己的Groovy构建并测试它。