正如标题所示,我正在尝试仅使用注释来映射多个结果集,这就是我的场景。
Proc_A
为这些模型返回 3 个结果集
org.example.models.ModelA = as Single Result
org.example.models.ModelB = as List<>
org.example.models.ModelC = as List<>
我知道您可以像这样执行 XML 和 @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>
这在大多数情况下都可以正常工作,但是我想知道有没有办法只用注释来做到这一点
更新
我发现@Results
但文档暗示它是针对一个结果集的@Result
。@Results
但是,我确实注意到@Result
一个和许多指标尚未找到有关其使用的文档,以查看它们是否会有所帮助。
提前致谢