Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getSqlMapClientTemplate().queryForList()未返回任何结果列表_Java_Sql_Spring_Ibatis - Fatal编程技术网

Java getSqlMapClientTemplate().queryForList()未返回任何结果列表

Java getSqlMapClientTemplate().queryForList()未返回任何结果列表,java,sql,spring,ibatis,Java,Sql,Spring,Ibatis,我试图返回自定义结果类中的结果列表,但不确定出了什么问题。 以下是守则的详情- ibatis-file.xml .... <resultMap id="inputFile" class="com.tm.systemmanager.batch.InputFile"> <result property="fileId" column="FILE_ID" /> <result property="fileName" column="FILE_NAME" /

我试图返回自定义结果类中的结果列表,但不确定出了什么问题。 以下是守则的详情-

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>
....
我在日志中没有看到任何错误/异常


有人能帮我解决这个问题吗。我期望从这段代码返回结果列表。在oracle DB中,我有所有用于验证此查询的DB条目。。但不确定出了什么问题。

请打印文件名并确保文件名没有任何前导/尾随空格。另外,我假设您已直接在DB中执行此查询,以确保获得结果
SELECT FILE\u NAME FROM ROU\u MERGE\u BATCH where FILE\u NAME in('abc.txt')

文件名也是单个文件名还是逗号分隔的字符串

已编辑 问题在于在caluse中传递逗号分隔字符串的方式

有关在Ibatis中使用IN子句的信息,请参阅此链接:


文件名是多个的,用逗号分隔,并用单引号括起来。当直接在DB上执行时,会打印文件名,它会处理查询。现在我尝试使用硬编码字符串值来检查结果。我认为问题是在子句中传递值。试试这个是的。。它对我有用。。。Ibatis不知何故错误地处理了传递的字符串逗号分隔值,上面链接中提供的解决方案对我有效。我怎样才能把你的评论标记为我的答案?
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;
}
....