java - MyBatis 中的多种返回类型?

标签 java orm mybatis

我有两个类 A 和 B,每个类都有许多字段,还有一个表,其中包含所有这些字段的值。我尝试制作 <select> 失败和<resultMap>将返回类型 A 和 B 的对象对列表的元素。

到目前为止,我发现的唯一(不太干净)的解决方案就是实现 typeHandler与一列(例如表的第一列)关联,并在该代码中通过读取 ResultSet 中的所有列来创建我需要的两个对象。传递给类型处理程序,而不仅仅是作为 String 传递的列名到类型处理程序。

是否有使用结果图的更清晰的解决方案? (注意:我不想对表进行分区以匹配两种对象类型)。

最佳答案

可以通过使用关联来实现您的目的:查看 Nested Results for Association 的文档

<resultMap id="pairResultMap" type="Pair">
    <association property="a"  resultMap="aResultMap" />
    <association property="b" javaType="B">
        <!-- define mapping here -->
    </association> 
</resultMap>
<resultMap id="aResultMap" type="A">            
    <!-- define mapping here -->
</resultMap>

您可以直接定义“子”结果映射 (B) 或引用它 (A)。

关于java - MyBatis 中的多种返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698780/

相关文章:

java - MyBatis 中不同关联中两次映射同一个表

java - 从 Java 运行 EXE

java - 在 Java 中使用 org.json.simple 解析不带引号的 JSON 键

java - Maven 构建在下载 Artifact 时获取连接重置

php - Gedmo Timestampable(更新创建时)

java - MyBatis 参数索引超出范围

java - 使用 MyBatis 映射输入和输出参数

java - 如何使用 Java 在 SQL 中获取列的中位数/众数/范围?

sql - Datamapper "first"方法正在查询整个关系

java - 对于映射到 java.lang.Class 的列的查询,不支持区分符类型 null