2011-07-13 16 views
3

ビルドは、Groovyの1.8で失敗は、Hibernate JPAのアノテーション。ビルドは、Groovyの1.8で失敗は、Hibernate JPA注釈

私のコードはかなり標準的なJPAアノテーションであり、過去のグルーヴィーバージョンでうまく機能しています。私は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={"[email protected]"}, name="screencast_topic", joinColumns={"[email protected]"}) @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;} 

答えて

2

グルーヴィー開発者はこの問題を認識しています(http://jira.codehaus.org/browse/GROOVY- 4768)。 次のリリースの修正があるようです。現在の回避策は、独自のGroovyビルドを作成してテストすることです。

+0

アンドレス..あなたがUberConfにいてうれしいです。話し、これについてもっと知ることは良いことでした。問題の概要は、ジョイントコンパイル(GroovyとJavaソースのコンパイル)に問題があることです。すべてのグルーヴィーに変更すると、問題が解決されます。幸いにも、私はJavaのソースがほとんど残っておらず、簡単にGroovyに変換することができました。既存のJavaプロジェクトを持つチームがGroovyに変換するのが難しくなるため、これは大きな問題だと思います。それはグルーヴィーな養子縁組にとっては悪いことかもしれません。 – Ben

関連する問題