私はかなり長い間 Spring Roo を使用してきました。平凡なプログラミングが不要になり、アプリのロジックに集中できる点がとても気に入っています。しかし、私は最近、JPA アノテーションを更新し、属性名を削除し続けるため、ランタイムと戦っていることに気付きました。
派生値 (ユーザーの現在の場所から会場までの距離) を計算し、それを JPA レコード オブジェクトに格納しようとするストアド プロシージャを呼び出しています。この質問SqlResultSetMapping columns as and entitiesで説明されているように、コードを正常に機能させることができました
Spring Roo シェルを無効にしてから、プロジェクトを再コンパイルする前にアノテーションを手動で更新することで、なんとかこれを行うことができました。
ただし、Roo シェルを実行する Spring ソース ツール スイートでこのロジックを記述している場合、Roo ランタイムは常に次のアノテーションを更新します。
@SqlResultSetMapping(name = "findVenuesByDistanceMapping"、エンティティ = { @javax.persistence.EntityResult(entityClass=model.VenueRecord.class) }、列 = { @javax.persistence.ColumnResult(name="distance") })
これに:
@SqlResultSetMapping(name = "findVenuesByDistanceMapping"、エンティティ = { @javax.persistence.EntityResult(model.VenueRecord.class) }、列 = { @javax.persistence.ColumnResult("distance")})
注釈属性識別子が削除されていることがわかります。次に、クラスをコンパイルしようとすると、例外が発生します。Spring Roo から完全に離れない限り、これを回避する方法はないようです。私は何ヶ月もそれを使用しており、回避できない問題を最近発見したばかりなので、これは残念です.
この問題を回避する方法について何か提案はありますか? おそらく、Spring Roo のコードを変更して、正しい形式の注釈を認識できるようにすることはできますか?