일부 매개 변수가있는 dblink를 사용하여 쿼리를 작성하는 데 triyng를 사용했습니다. 나는 Hibernate 4를 사용 중이며 데이터베이스는 MSSQL이다.OpenQuery 및 매개 변수가있는 NativeQuery
하지만 중 하나를 얻을 :
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'.
내 쿼리가
@Query(nativeQuery=true, value="SELECT * FROM OPENQUERY([linked_server], 'SELECT * FROM TABLE WHERE COLUM1 = ''0145A'' AND COLUMN2 LIKE ':prefix'');")
public List<CPNT023_PART> GET_PART_AND_ANALYST(@Param(value="prefix") String prefix);
또는 쿼리가
@Query(nativeQuery=true, value="SELECT * FROM OPENQUERY([linked_server], 'SELECT * FROM TABLE WHERE COLUM1 = ''0145A'' AND COLUMN2 LIKE '':prefix'' ');")
public List<CPNT023_PART> GET_PART_AND_ANALYST(@Param(value="prefix") String prefix);
경우 내가
java.lang.IllegalArgumentException: Parameter with that position [1] did not exist
을받을 경우
(LIKE 다음의 작은 따옴표의 차이점에 유의하십시오).
매개 변수를 사용하지 않으면 정답을 얻습니다. 따라서 다음 검색어 :
@Query(nativeQuery=true, value="SELECT * FROM OPENQUERY([linked_server], 'SELECT * FROM TABLE WHERE COLUM1 = ''0145A'' AND COLUMN2 LIKE ''%ABC%'' ');")
실제로 작동합니다.
나는이 문제로 다소 잃어 버렸고, 나는 대답을 찾기 위해 triyng 이었지만, 유효한 질문에 가깝지 않았다.
링크 된 서버는 거대한 오라클 데이터베이스이므로 OPENQUERY를 사용해야합니다. 실제로 처리하기 위해 필요합니다.
미리 감사드립니다.