NOT IN
句を追加する方法
、Javaコードで位置パラメータを使用してネイティブクエリにNOT IN句を追加しますか?
public final String s = "SELECT * FROM EMPLOYEE WHERE EMPLOYEE_ID NOT IN ?";
public final String e_not_in = "('a', 'b', 'c')";
、
List<Employee> el = getEm().createNativeQuery(s).setParameter(1, e_not_in);
しかし、結果リストは'a'
、'b'
と'c'
に関連するデータを持って、現在、より多くのがありますこの定数動的パラメータを使用するSQL定数のクエリが200件を超えています。すべてのSQLクエリでNOT IN
節をハードコーディングするか、位置パラメータを個別に変更する以外の回避策はありますか、'b'
、'c'
のようなEMPLOYEE_ID NOT IN (?1, ?2, ?3)
のような項目をリストしてください。問題が生産段階にあるので、直ちに解決する必要があります。
おかげ
これらのクエリは誰かによって変更する必要がありますが、どのような選択肢がありますか? –
「問題は生産中です」:実際にリリース前にそれをチェックした人はいませんか?文字列パラメータを使用すると、意図が達成されることは決してありません –
JPA1で動かないとJDBCに戻ると考えられますか?つまり、EclipseLinkからJDBC Connectionを取得したら、リストを入力することができます。おそらくhttps://wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI#Getting_a_JDBC_Connection_from_an_EntityManager –