, 자바 코드에서위치 매개 변수를 사용하여 원시 쿼리에 'NOT IN'절을 추가 하시겠습니까? 동적 네이티브 SQL 쿼리 JPA에 <code>NOT IN</code> 절을 추가하는 방법
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)
과 같은 목록 항목. 문제가 생산 중이므로 즉시 해결해야합니다. 변경을 즉시 수행하는 방법이 도움이됩니다.
이러한 쿼리는 누군가에 의해 변경되어야하며, 어떤 대안을 염두에 두어야합니까? –
"문제는 생산 중입니다."그래서 아무도 그것을 공개하기 전에 실제로 확인하지 않았습니까? String 매개 변수를 사용하면 분명히 의도 한 바를 달성하지 못할 것입니다. –
JPA1에 머물러 있다면 JDBC로 돌아갈 것 같습니까? 즉, EclipseLink에서 JDBC Connection을 가져온 다음 List를 입력 할 수 있습니다. https://wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI#Getting_a_JDBC_Connection_from_an_EntityManager –