2

WLS 10.3.5 で EclipseLink を実行しています。

@NamedNativeQuery アノテーションを使用しようとしていますが、試したすべての SQL で " Internal Exception: java.sql.SQLException: SQL string is not Query" 例外が発生します。

単純な場合でも、SELECT * FROM TABLETABLE が含まれているエンティティがマップされているテーブルであるというエラーが発生します。

注釈は次のとおりです。

@NamedNativeQuery(name = AnnouncementDeliveryLog.FIND_NORMALIZED_RECIPIENTS_FOR_ANNOUNCEMENT, query =  "SELECT * FROM ANNOUNCEMENT_DELIVERY_LOG", resultClass = AnnouncementDeliveryLog.class)

クエリは次のように実行されています:

em.createNativeQuery(AnnouncementDeliveryLog.FIND_NORMALIZED_RECIPIENTS_FOR_ANNOUNCEMENT).getResultList();

システムからより有用な情報を取得する良い方法が見つからないので、どんな情報でも大歓迎です。

4

1 に答える 1

2

間違った方法が使用されています。メソッドcreateNativeQueryは、ネイティブ SQL 文字列を引数として受け取ります。指定されたコード引数では、ネイティブ クエリの名前のようです。メソッドcreateNamedQueryを使用する必要があります。このメソッドは、ネイティブ クエリの名前を引数として取ります。

于 2013-02-22T19:34:48.363 に答える