Java org.apache.ibatis.builder.IncomplementElementException:找不到结果映射。为什么?
我无法使用xml文件将查询结果映射到带有MyBatis和Spring Boot的bean 配置:spring boot,mybatis 1) 我有一个制图器:Java org.apache.ibatis.builder.IncomplementElementException:找不到结果映射。为什么?,java,spring,spring-boot,mybatis,Java,Spring,Spring Boot,Mybatis,我无法使用xml文件将查询结果映射到带有MyBatis和Spring Boot的bean 配置:spring boot,mybatis 1) 我有一个制图器: package ru.kq.cn.mapper; @Mapper public interface GateMapper { @Select("call [dbo].[cai_Select] 1, ") @ResultMap("GateMapper.WResultMap") WQueryResult cal
package ru.kq.cn.mapper;
@Mapper
public interface GateMapper {
@Select("call [dbo].[cai_Select] 1, ")
@ResultMap("GateMapper.WResultMap")
WQueryResult call();
}
2) 在同一个包中,我为ResultSet提供了xml:
<mapper namespace="ru.kq.cn.mapper.GateMapper">
<resultMap id="WResultMap" type="ru.kq.cn.dto.WQueryResult">
<result property="proverTpId" column="proverTpId"/>
<collection property="itemIds" column="itemId">
</collection>
</resultMap>
</mapper>
4) 应用程序:
请帮忙 正如您没有提到的,我假设数据库是MS SQL Server 一些基础知识
- 要调用存储过程,需要设置
statementType=“CALLABLE”
- 在JDBC中,调用存储过程的语法是
{callproc(?,,…)}
- 要处理多个结果集,需要使用语句的
来命名每个结果集resultSets
@Select({call[dbo].[cai_Select](1)})
@结果映射(“WResultMap”)
@选择权(
statementType=statementType.CALLABLE,
resultSets=“firstRS,secondRS”>
WQueryResult调用();
您的过程返回两个结果集。我分别将它们命名为firstRS
和secondRS
在结果映射中,指定
的resultSet
属性我假设第二个结果集是针对
itemIds
的
映射到列表
有点棘手。我们有一个
这是一个可执行文件。要演示父子关系的映射,它比您的更复杂。您能用数据库过程代码更新问题吗?
@ResultMap(“GateMapper.WResultMap”)
是错误的。它应该是@ResultMap(“WResultMap”)
或@ResultMap(“ru.kq.cn.mapper.GateMapper.WResultMap”)
@ave没有help@Smile该过程返回多个结果列表。一个结果返回带有proverTpId的1行,另一个结果返回带有itemId的5行
package ru.kq.cn.dto;
..
@Data
public class WQueryResult implements Serializable {
Long proverTpId;
List <String> itemIds;
}
mybatis.type-aliases-package=ru.kq.cn.dto
mybatis.mapper-locations='classpath:ru/kq/cn/mapper/*.xml'
@MapperScan("ru.kq.cn.mapper")
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}