1.我先用生成的此语句执行后得出3列字段中的数据。
SELECT POLNO,CERTNO,POL_PRT_CODE FROM AUD_JH_POL_MAIN WHERE (APP_DATE < TO_DATE('2011-01-01','YYYY-MM-DD') AND EFF_DATE < TO_DATE('2011-01-31','YYYY-MM-DD'))2.但是在生成下面语句在执行时,后面两个字段没有值,值显示之前查询的3个语句。我拿到数据库中单独执行,是5列都有数据的
SELECT POLNO,CERTNO,POL_PRT_CODE,PRPL_NO,PRPL_PRT_CODE FROM AUD_JH_POL_MAIN WHERE (APP_DATE < TO_DATE('2011-01-01','YYYY-MM-DD') AND EFF_DATE < TO_DATE('2011-01-31','YYYY-MM-DD'))    sql是我生成的sql语句为参数用##传参不能执行,只能用$$执行,但是会出现上面的问题。请帮忙!!!<select  id="getPartTableCols" resultClass="java.util.HashMap" parameterClass="string">
<![CDATA[
$sql$
]]>
</select>

解决方案 »

  1.   

    resultClass="java.util.HashMap"
    这说明你返回的值是key value对的形式,那key是不能重复的。会不会是你有重复的数据呢。
      

  2.   

    我加上了remapResults="true但是有问题但是我这填上了 又出现个解析错误
    Cause: org.xml.sax.SAXException: Error: URI=null Line=214: Attribute "remapResults" must be declared for element type "select".
      

  3.   

    一下是我常用的ibatis的配置,你看看吧,希望对你有用<sqlMap namespace="logger">
    <!-- bean配置 -->
    <typeAlias alias="LoginQueryLogger" type="com.cs.web.bean.LoginQueryLogger"/>
    <typeAlias alias="LoginLogger" type="com.cs.web.bean.LoginLogger"/>
    <typeAlias alias="TasksLogger" type="com.cs.web.bean.TasksLogger"/>

    <!-- 任务申请日志 -->
    <resultMap class="TasksLogger" id="TasksLoggerList" groupBy="loginId">  
            <result property="loginId" column="login_id" />  
            <result property="taskNo" column="task_no" />  
            <result property="taskName" column="task_name" />  
            <result property="doType" column="type" />  
            <result property="resNo" column="res_no" />  
            <result property="applyTime" column="apply_time" />  
            <result property="startTime" column="start_time" />  
            <result property="endTime" column="end_time" />  
            <result property="letupTime" column="letup_time" />  
        </resultMap>
        <!-- 用户登陆日志 -->
        <resultMap class="LoginLogger" id="LoginLoggerList" groupBy="loginId">  
            <result property="loginId" column="login_id" />  
            <result property="userName" column="user_name" />  
            <result property="ip" column="ip" />  
            <result property="loginState" column="login_state" />  
            <result property="date" column="date" />  
            <result property="tasksLogger" resultMap="logger.TasksLoggerList"/>  
        </resultMap>
        
        <!-- 查询所有的日志记录 -->
        <select id="findAllLogger" resultMap="logger.LoginLoggerList">  
            SELECT a.login_id as loginId,
                   a.user_name as userName,
                   a.ip as ip,
                   a.login_state as loginState,
                   a.date as date,
                   b.task_no as taskNo,
                   b.task_name as taskName,
                   b.type as doType,
                   b.res_no as resNo,
                   b.apply_time as applyTime,
                   b.submit_time as submitTime,
                   b.start_time as startTime,
                   b.end_time as endTime,
                   b.letup_time as letupTime
              FROM T_LOGIN_LOGGER a
              LEFT OUTER JOIN T_TASKS_LOGGER b ON a.login_id = b.login_id
        </select>
      

  4.   

    话说你能搞个bean类么?返回hashmap的话。由于hashmap的特性。有可能有部分值会取不到,你弄个bean类,然后把语句写在xml文件里面,然后的对象为bean类吧,这样也规范些!!