正如标题所示,我试图用注释来映射多个结果集,这是我的情景。
Proc_A
为这些模型返回3个结果集
org.example.models.ModelA = as Single Result
org.example.models.ModelB = as List<>
org.example.models.ModelC = as List<>
我知道你可以做一个XML&amp; @Annotation方法就像这样。
//ExampleMapper.java
public interface ExampleMapper {
@Select("EXEC Proc_A #{userID}")
@ResultMap("getModelA","getModelB","getModelC")
@Options(statementType = StatementType.CALLABLE)
List<List<?>> executeProcA(@Param("userID") Integer userID)
}
和Xml
//ExampleMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="org.example.mybatis.ExampleMapper" >
<!-- Result Maps for Proc_A -->
<resultMap id="getModelA" type="org.example.models.ModelA" />
<resultMap id="getModelB" type="org.example.models.ModelB" />
<resultMap id="getModelC" type="org.example.models.ModelC" />
</mapper>
这在大多数情况下都可以正常工作但是我想知道有没有办法只使用Annotations
更新
我发现@Results
和@Result
但是@Results
文档对于一个结果集来说是不可能的。但是我在@Result
注意到了一个,很多指标还没有找到关于它们使用的文件,看看它们是否有用。
提前致谢