사용자 지정 결과 클래스에서 결과 목록을 반환하려고하는데 무엇이 잘못되었는지 잘 모르겠습니다. 다음은 코드의 세부 사항입니다.
ibatis-file.xml
....
<resultMap id="inputFile" class="com.tm.systemmanager.batch.InputFile">
<result property="fileId" column="FILE_ID" />
<result property="fileName" column="FILE_NAME" />
<result property="sourceDirectory" column="SOURCE_DIRECTORY" />
<result property="movedToDirectory" column="MOVEDTO_DIRECTORY" />
<result property="inTime" column="IN_TIME" />
<result property="noOfRecords" column="NO_OF_RECORDS" />
<result property="status" column="STATUS" />
<result property="statusDate" column="STATUS_TIME" />
<result property="statusReason" column="STATUS_REASON" />
</resultMap>
<select id="mergeSelectDuplicateRecords" parameterClass="string"
resultMap="inputFile" >
SELECT FILE_NAME FROM ROU_MERGE_BATCH where FILE_NAME IN (#fileNames#)
</select>
....
위의 쿼리를 String으로 'abc.txt', 'xyz.txt'로 호출하는 클래스입니다.
FileAuditDaoIbatisImpl extends SqlMapClientDaoSupport implements FileAuditDao
.....
public List getMergeDuplicateFiles(String fileNames){
List lsMergeFiles = null;
lsMergeFiles = getSqlMapClientTemplate().queryForList("mergeSelectDuplicateRecords", fileNames);
logger.info("List of files returned by ResultSet = "+lsMergeFiles);
return lsMergeFiles;
}
....
로그에 오류 / 예외가 표시되지 않습니다.
누군가가 문제를 해결하도록 도와주세요. 이 코드에서 결과 목록을 반환 할 것으로 예상합니다. 오라클 DB에는이 쿼리의 유효성을 검사하는 데 필요한 모든 db 항목이 있지만 무엇이 잘못되었는지 확실하지 않습니다.
파일 이름을 인쇄하고 파일 이름에 선행 / 후행 공백이 없는지 확인하십시오. 또한 결과를 얻고 있는지 확인하기 위해 DB에서 직접이 쿼리를 실행했다고 가정합니다.SELECT FILE_NAME FROM ROU_MERGE_BATCH where FILE_NAME IN ('abc.txt')
또한 fileNAmes는 단일 파일 이름입니까 아니면 쉼표로 구분 된 문자열입니까?
편집 된 문제는 IN caluse에 대해 쉼표로 구분 된 문자열을 전달하는 방식에 있습니다.
Ibatis에서 IN 절을 사용하려면이 링크를 참조하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다