Java EE SqlResultSetMapping構文
質問
私は、以下のJava6コード:
Query q = em.createNativeQuery(
"select T.* " +
"from Trip T join Itinerary I on (T.itinerary_id=I.id) " +
"where I.launchDate between :start and :end " +
"or ADDDATE(I.launchDate, I.equipmentPullDayOfTrip) between :start and :end",
"TripResults" );
q.setParameter( "start", range.getStart(), TemporalType.DATE );
q.setParameter( "end", range.getEnd(), TemporalType.DATE );
@SqlResultSetMapping( name="TripResults",
entities={
@EntityResult( entityClass=TripEntity.class ),
@EntityResult( entityClass=CommercialTripEntity.class )
}
)
を受けてい文法エラーの閉右括弧.Eclipseとる:"挿入EnumBodyを完全にブロック計算書"および"挿入列挙型の識別子の完了EnumHeaderName".同様の構文エラーからのjavac.
なぜですか?
解決
Hibernateの注釈新http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/ したと考えられているこのクラスレベルの注釈によるインライン内のコードです。あの頃ペーストするコードを自IDEに移動し周辺のコンパイルエラー時のアノテーションはインラインが消え入れてみてはいかが上記のクラスの宣言
@SqlResultSetMapping( name="TripResults",
entities={
@EntityResult( entityClass=TripEntity.class ),
@EntityResult( entityClass=CommercialTripEntity.class )
}
)
public class Foo {
public void bogus() {
Query q = em.createNativeQuery(
"select T.* " +
"from Trip T join Itinerary I on (T.itinerary_id=I.id) " +
"where I.launchDate between :start and :end " +
"or ADDDATE(I.launchDate, I.equipmentPullDayOfTrip) between :start and :end",
"TripResults" );
q.setParameter( "start", range.getStart(), TemporalType.DATE );
q.setParameter( "end", range.getEnd(), TemporalType.DATE );
}
}
...明らかにしていることを裏付ける証拠はなく、上記のコードです。いて検証を引き起こさないことをコンパイルエラ.
他のヒント
自例が発表されていたものAPIドキュメントを残念ながら解を示した。
ご注釈れることがありますが一部のクラスは、そのままのクエリの結果セットのマッピングしました。しかし、実際には関係ありませんがこのアノテーションが配置されています。おJPAプロバイダ実際の維持にグローバルリストのこれらすべてのマッピングなどで指定することができます使用することができます。
この得らのアノテーションの方法に対して指定するもの、形式をサポートしています。) 多くの他のものにJPAを使用したプログラミング方法(名前のクエリ)を定義するようになる。このような一種との間の接続のものが定義されるクラスでのdnaが入っていることが多いので、いません。
所属していません StackOverflow