iBatis cannot return List<Long> or List<String> ??


<param-map id="/le/queryForDocIdListParams">
<property name="esubMainId" sqlType="BIGINT" validate="false" />
<property name="esubExamId" sqlType="BIGINT" validate="false" />
</param-map>
<result-map id="/le/queryForDocIdListResults" class="java.lang.Long">
</result-map>
<map-sql id="/le/queryForDocIdList" type="query"
param-map="/le/queryForDocIdListParams"
result-map="/le/queryForDocIdListResults">
<![CDATA[
SELECT DOC_ID
FROM LIC_LE_ESUB_SUPP_DOC
WHERE 1=1
<isNotEmpty property="esubMainId">
AND LE_ESUB_MAIN_ID = ##esubMainId##
</isNotEmpty>
<isNotEmpty property="esubExamId">
AND LE_ESUB_EXAM_ID = ##esubExamId##
</isNotEmpty>
AND DELETE_IND = 'F'
]]>
</map-sql>


Log:
java.lang.InstantiationException: java.lang.Long
at java.lang.Class.newInstance0(Class.java:335)
at java.lang.Class.newInstance(Class.java:303)

This caused by, there is no default constructor in java.lang.Long class, cannot initialize a Long with 'new Long()'.


Although java.lang.String has a default constructor, but there is no setter method to set result, so finally an arraylist contains several
empty string (""). Maybe I used it incorrectly.
要将List<UserInfo>转换成Map<Long,List<UserInfo>>,可以使用foreach标签来实现。首先,在mapper层的SysUserMapper.java文件中,可以定义一个方法来实现这个转换操作。方法的参数是List<UserInfo> userList,表示要转换的列表。在方法内部,可以使用Java的foreach循环遍历列表,将每个UserInfo对象的id作为键,将对象本身添加到对应的值列表中。最后,将键值对添加到一个Map<Long,List<UserInfo>>对象中,并将其返回。 下面是一种可能的实现方式: ```java public Map<Long, List<UserInfo>> convertListToMap(List<UserInfo> userList) { Map<Long, List<UserInfo>> resultMap = new HashMap<>(); for (UserInfo userInfo : userList) { Long id = userInfo.getId(); if (resultMap.containsKey(id)) { resultMap.get(id).add(userInfo); } else { List<UserInfo> list = new ArrayList<>(); list.add(userInfo); resultMap.put(id, list); } } return resultMap; } ``` 这样,当调用该方法并传入List<UserInfo>对象时,将返回一个Map<Long,List<UserInfo>>对象,其中每个键是UserInfo对象的id,对应的值是具有相同id的UserInfo对象列表。 请注意,以上只是一种可能的实现方式,具体的实现方式可能因具体需求而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Mybatis/Ibatis框架--动态SQL, foreach标签与List<T>、数组参数案例](https://blog.csdn.net/dear_Alice_moon/article/details/87534656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值