如何在Mybatis中映射多个bean?

大灾变

我有两个(1)CarBean和(2)WheelBean,如下所示

public class CarBean implements Serializable {
  private Long carId;
  private List<WheelBean> wheels;
}

我有两张汽车和车轮的桌子。我想从汽车表中查询数据,并使用左联接车轮表。我想使用如下

  <select id='getCarById' parameterType='Long' resultType='mypackage.CarBean'>
    SELECT
     C.*,W.*
     FROM CAR C
     LEFT JOIN WHEEL W
     ON C.CAR_ID = W.CAR_ID
     WHERE CAR_ID = #{carId}
  </select>

但是这样一来,我无法从轮盘中获取数据,因为没有与轮盘信息匹配的数据。所以,现在我 CarBean扩展WheelBean,并且在我的数据源xml中

  <select id='getCarById' parameterType='Long' resultType='mypackage.WheelBean'>
    SELECT
     C.*,W.*
     FROM CAR C
     LEFT JOIN WHEEL W
     ON C.CAR_ID = W.CAR_ID
     WHERE CAR_ID = #{carId}
  </select>

这样,我可以同时获得CarBeanWheelBean数据。我的问题是“ ..有没有办法在不将carBean扩展到wheelBean的情况下获取carBean和wheelBean数据?”

我认为正常情况下,WheelBean应该扩展CarBean而不是CarBean我对吗 ?在我的服务层,WheelBean List是在CarBean合成的我该怎么办?

赛义夫

您可以根据需要映射任意数量,但MyBatis将通过方法queryForObjectqueryForList其他方法提供查询结果

世界上没有方法可以返回两个值。
因此,唯一的方法是将它们绑定在一个类中。

现在,因为您不想要,extending carBean to wheelBean所以可以尝试一下

  • 创建另一个包含结果的类,该类将同时包含carBean和wheelBean作为属性

  • 然后使结果图像

    <resultMap class="mypackage.YourNewClass" id="mapId">
    <result property="carBean.pro1" column="" />
    <result property="carBean.pro2" column="" />
    ......
    <result property="wheelBean.pro1" column="" />
    <result property="wheelBean.pro2" column="" />

  • 然后显示此结果图以选择查询

    <select id="getCarById" resultMap="mapId" parameterClass="Long">

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在spring-servlet.xml中映射多个datasorce?

来自分类Dev

如何在Spring MVC中映射多个控制器

来自分类Dev

如何在Struts 2中从select标记映射多个值?

来自分类Dev

如何在FeignClient中定义具有多个端点的映射?

来自分类Dev

如何在Java Lambda中映射多个变量?

来自分类Dev

如何在Spring MVC中映射多个控制器

来自分类Dev

如何在Struts 2中从select标记映射多个值?

来自分类Dev

如何在Spring Boot的application.yml中配置mybatis映射器xml文件

来自分类Dev

如何在Spring Boot的application.yml中配置mybatis映射器xml文件

来自分类Dev

如何在不使用内联映射或多个.ForMember的情况下在automapper中映射嵌套对象?

来自分类Dev

如何在SolrJ中插入具有多个子Bean的Bean对象

来自分类Dev

在非实体java bean中映射多个休眠实体

来自分类Dev

如何在mybatis映射中定义复合主键

来自分类Dev

MyBatis:如何从查询中存储多个值?

来自分类Dev

如何在Java流中映射多个1-1记录?

来自分类Dev

如何在熊猫中传递多个参数以映射函数

来自分类Dev

如何在Java中的嵌套映射中的多个条目中使用单个键

来自分类Dev

如何在流中执行多个分组时返回java bean对象

来自分类Dev

如何在mybatis中调用oracle函数

来自分类Dev

如何在WebFlux堆栈中处理MyBatis

来自分类Dev

如何在 MyBatis 中 foreach 数组

来自分类Dev

该URL如何在Apache中映射?

来自分类Dev

如何在Common Lisp中映射功能?

来自分类Dev

如何在reactJS中映射字典?

来自分类Dev

如何在Vim映射列表中搜索?

来自分类Dev

lambda参数如何在TakeWhile中映射?

来自分类常见问题

如何在Java 8中映射值?

来自分类Dev

如何在不同的DataFrames中映射系列

来自分类Dev

如何在ObjectMapper中映射JSON词典?

Related 相关文章

  1. 1

    如何在spring-servlet.xml中映射多个datasorce?

  2. 2

    如何在Spring MVC中映射多个控制器

  3. 3

    如何在Struts 2中从select标记映射多个值?

  4. 4

    如何在FeignClient中定义具有多个端点的映射?

  5. 5

    如何在Java Lambda中映射多个变量?

  6. 6

    如何在Spring MVC中映射多个控制器

  7. 7

    如何在Struts 2中从select标记映射多个值?

  8. 8

    如何在Spring Boot的application.yml中配置mybatis映射器xml文件

  9. 9

    如何在Spring Boot的application.yml中配置mybatis映射器xml文件

  10. 10

    如何在不使用内联映射或多个.ForMember的情况下在automapper中映射嵌套对象?

  11. 11

    如何在SolrJ中插入具有多个子Bean的Bean对象

  12. 12

    在非实体java bean中映射多个休眠实体

  13. 13

    如何在mybatis映射中定义复合主键

  14. 14

    MyBatis:如何从查询中存储多个值?

  15. 15

    如何在Java流中映射多个1-1记录?

  16. 16

    如何在熊猫中传递多个参数以映射函数

  17. 17

    如何在Java中的嵌套映射中的多个条目中使用单个键

  18. 18

    如何在流中执行多个分组时返回java bean对象

  19. 19

    如何在mybatis中调用oracle函数

  20. 20

    如何在WebFlux堆栈中处理MyBatis

  21. 21

    如何在 MyBatis 中 foreach 数组

  22. 22

    该URL如何在Apache中映射?

  23. 23

    如何在Common Lisp中映射功能?

  24. 24

    如何在reactJS中映射字典?

  25. 25

    如何在Vim映射列表中搜索?

  26. 26

    lambda参数如何在TakeWhile中映射?

  27. 27

    如何在Java 8中映射值?

  28. 28

    如何在不同的DataFrames中映射系列

  29. 29

    如何在ObjectMapper中映射JSON词典?

热门标签

归档