mybatise多层集合嵌套查询(3层)

谁借莪1个温暖的怀抱¢ 2022-12-10 02:23 356阅读 0赞

1,用一个sql,多个resultMap 一般另起一个子map,不直接在collection中再套

每个子项都需要id才可避免子项自身被覆盖,永远1条

例如:























































  1. <select id="getSingleItemProductListForNew"
  2. parameterType="com.mcd.cn.rdc.pcm.product.business.vo.template.TemplateParam"
  3. resultMap="singleProductVOResultOnline">
  4. SELECT
  5. p.id,
  6. p.CODE,
  7. p.NAME,
  8. p.long\_name,
  9. p.description,
  10. p.type,
  11. p.sales\_flag,
  12. p.ui\_type,
  13. p.dayweek,
  14. p.bu,
  15. p.has\_grill,
  16. p.daypart,
  17. p.channel,
  18. ttr.CODE tax\_rate\_type\_code,
  19. ttr.tax\_rate,
  20. tsp.start\_date,
  21. tsp.end\_date,
  22. tsd.start\_time,
  23. tsd.end\_time,
  24. le.content AS productLongNameEn,
  25. tpg.id AS grill\_id,
  26. tpg.grill\_code,
  27. tpg.NAME AS grill\_name,
  28. tpg.grill\_mode,
  29. tpg.display\_mode,
  30. tpg.quantity,
  31. tpg.max\_quantity,
  32. tpg.min\_quantity,
  33. tpg.grill\_image,
  34. tpgi.id grill\_item\_id,
  35. tpgi.grill\_item\_code,
  36. tpgi.NAME item\_name,
  37. tpgi.quantity item\_quantity,
  38. tpgi.is\_modify,
  39. tpgi.grill\_item\_image,
  40. tpgi.is\_default,
  41. ttr1.CODE grill\_tax\_rate\_type\_code,
  42. ttr1.tax\_rate grill\_tax\_rate
  43. FROM
  44. t\_product p
  45. LEFT JOIN t\_product\_sales\_period tsp ON p.CODE = tsp.product\_code
  46. AND p.data\_version = tsp.data\_version
  47. LEFT JOIN t\_product\_sales\_daypart tsd ON p.CODE = tsd.product\_code
  48. AND p.data\_version = tsd.data\_version
  49. LEFT JOIN t\_product\_grill tpg ON tpg.product\_code = p.CODE
  50. AND tpg.data\_version = p.data\_version
  51. LEFT JOIN t\_product\_grill\_item tpgi ON tpg.data\_version = tpgi.data\_version
  52. AND tpg.product\_code = tpgi.product\_code
  53. AND tpg.grill\_code = tpgi.grill\_code
  54. LEFT JOIN t\_master\_tax\_rate ttr1 ON tpg.tax\_rate\_type\_code = ttr1.
  55. CODE LEFT JOIN t\_master\_tax\_rate ttr ON p.tax\_rate\_type\_code = ttr.
  56. CODE LEFT JOIN t\_international\_language le ON le.key\_code = p.CODE
  57. AND le.LANGUAGE = 'en\_US'
  58. AND le.field\_name = 'productLongNameEn'
  59. AND le.table\_name = 't\_product'
  60. AND le.data\_version = p.data\_version
  61. WHERE
  62. p.\`status\` = '1'
  63. AND p.data\_version = \#\{dataVersion\}
  64. <if test="productCodes != null and productCodes.size()>0">
  65. AND p.code IN (
  66. <foreach collection="productCodes" item="obj" index="index" separator=",">
  67. \#\{obj\}
  68. </foreach>
  69. )
  70. </if>
  71. </select>

2,用多个sql,第一个是主sql,其他是map嵌套sql
参看:
https://www.jianshu.com/p/80711449476c
https://www.cnblogs.com/hnsunlong/p/7195594.html
自动2层?

https://blog.csdn.net/u011006672/article/details/85258757?utm\_medium=distribute.pc\_aggpage\_search\_result.none-task-blog-2~all~first\_rank\_v2~rank\_v25-10-85258757.nonecase&utm\_term=mybatis%20%E5%A4%9A%E5%B1%82%E5%B5%8C%E5%A5%97%E6%9F%A5%E8%AF%A2

  1. SELECT

发表评论

表情:
评论列表 (有 0 条评论,356人围观)

还没有评论,来说两句吧...

相关阅读

    相关 table中嵌套table

    因工作业务需求,需要展示一个多层嵌套的数据结构,现整理如下,分享给需要的朋友,应用框架vue2。  初始的数据结构如下: new Vue({     el