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.
package org.dromara.grid.fireproof.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableId; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Null; import lombok.Data; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.grid.fireproof.domain.Bayonet; import java.io.Serial; import java.io.Serializable; @Data @ExcelIgnoreUnannotated @AutoMapper(target = Bayonet.class) public class BayonetVo implements Serializable { @Serial private static final long serialVersionUID = 1L; /** * 主键id(修改需要,新增不需要) */ @TableId(value = "id") @NotBlank(message = "参数id不能为空!", groups = {EditGroup.class}) @Null(message = "参数id必须为空!", groups = {AddGroup.class}) private String id; @ExcelProperty(value = "*卡口名称", index = 0) @NotBlank(message = "卡口名称不为空!", groups = {AddGroup.class, EditGroup.class}) private String bayonetName; @NotBlank(message = "所属网格不为空!", groups = {AddGroup.class, EditGroup.class}) private String managerId; @ExcelProperty(value = "*所属网格", index = 1) private String managerName; /** * 负责人 */ @ExcelProperty(value = "负责人", index = 2) private String head; @ExcelProperty(value = "*联系方式", index = 3) @NotBlank(message = "联系方式不能为空!", groups = {AddGroup.class, EditGroup.class}) private String phone; @ExcelProperty(value = "*摄像头", index = 4) @NotBlank(message = "摄像头不能为空!", groups = {AddGroup.class, EditGroup.class}) private String cameraId; @ExcelProperty(value = "*摄像头位置", index = 5) @NotBlank(message = "摄像头位置不能为空!", groups = {AddGroup.class, EditGroup.class}) private String installPosition; private String detail; } package org.dromara.grid.fireproof.domain.bo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.grid.fireproof.domain.Bayonet; import java.util.List; @Data @ExcelIgnoreUnannotated @AutoMapper(target = Bayonet.class) public class BayonetBo extends BaseEntity { private String bayonetName; private String managerId; private String head; private String phone; private String cameraId; private String installPosition; private String detail; private String managerName; private List<String> ids; } <select id="page" resultType="org.dromara.grid.fireproof.domain.vo.BayonetVo"> select gb.*,gm.name AS managerName from grid_bayonet gb left join grid_manager gm on gb.manager_id = gm.id <where> gb.del_flag = 0 <if test="query.bayonetName != null and query.bayonetName != ''"> and gb.bayonet_name like concat('%', #{query.bayonetName}, '%') </if> <!-- <if test="query.managerId != null and query.managerId != ''">--> <!-- and gb.manager_id = #{query.managerId}--> <!-- </if>--> <!-- <if test="query.ids != null and query.ids.size() > 0">--> <!-- and gb.id in--> <!-- <foreach collection="query.ids" item="id" open="(" separator="," close=")">--> <!-- #{id}--> <!-- </foreach>--> <!-- </if>--> </where> </select>报错Failure in @ExceptionHandler org.dromara.common.mybatis.handler.MybatisExceptionHandler#handleCannotFindDataSourceException(MyBatisSystemException, HttpServletRequest) java.lang.NullPointerException: Cannot invoke "String.contains(java.lang.CharSequence)" because "message" is null
07-11
package com.gxnzd.chapter05; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.gxnzd.chapter05.Mapper.BookMapper; import com.gxnzd.chapter05.entity.EBook; import com.gxnzd.chapter05.service.BookService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest public class MPTests { @Autowired private BookMapper bookMapper; @Autowired private BookService bookService; private void bookInfo(){ List<EBook> eBooks = bookMapper.selectList(null); //调用BookService的方法输出所有图书信息 for(EBook eBook : eBooks){ System.out.println(eBook); } } // @Test // void saveEBook(){ // EBook eBook = new EBook(null,"人间此话","王国维","四川文艺出版社","1"); // //新增图书信息 // bookMapper.insert(eBook); // bookInfo(); // } @Test void findBook(){ //根据图书作者和图书状态查找对应书籍 QueryWrapper<EBook> wrapper = new QueryWrapper<>(); wrapper.eq("status",1).like("name","问"); List<EBook> eBooks = bookMapper.selectList(wrapper); for(EBook eBook : eBooks){ System.out.println(eBook); } } @Test void editBook() { System.out.println("------图书修改前--------"); bookInfo(); // 先检查记录是否存在 EBook eBook = bookService.getById(4); if (eBook == null) { System.out.println("ID为4的图书不存在,无法修改"); return; } // 通过 Service 层更新,保持业务逻辑统一 eBook.setName("楚辞"); eBook.setPress("中华书局"); bookService.updateById(eBook); // 假设 Service 实现了该方法 System.out.println("------图书修改后--------"); bookInfo(); } @Test void delBook(){ //根据图书编号删除图书信息 bookService.removeById(4); bookInfo(); } }
最新发布
10-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值