1

正如标题所示,我正在尝试仅使用注释来映射多个结果集,这就是我的场景。

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一个和许多指标尚未找到有关其使用的文档,以查看它们是否会有所帮助。

提前致谢

4

0 回答 0