{"id":19949,"date":"2024-03-15T19:44:50","date_gmt":"2024-03-15T19:44:50","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/"},"modified":"2024-03-21T16:55:23","modified_gmt":"2024-03-21T16:55:23","slug":"what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/","title":{"rendered":"What is the method for performing nested queries in MyBatis for one-to-many relationships?"},"content":{"rendered":"<p>In MyBatis, the method to implement a nested query for one-to-many relationships is to use either nested result mapping or nested select.<\/p>\n<ol>\n<li>Elements are used to define one-to-many relationships. For example, there is an Order entity class and an OrderItem entity class, where one order can contain multiple order items. The relationship with OrderItem can be defined by using elements in the mapping file of Order, specifying the associated field and mapping result of OrderItem. In this way, when querying Order, its associated OrderItem will be automatically queried.<\/li>\n<\/ol>\n<p>The sample code is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">&lt;!-- Order\u7684\u6620\u5c04\u6587\u4ef6 --&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">resultMap<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"orderMap\"<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"Order\"<\/span>&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">id<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"id\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"order_id\"<\/span>\/&gt;<\/span>\r\n  <span class=\"hljs-comment\">&lt;!-- \u5176\u4ed6\u5c5e\u6027\u6620\u5c04 --&gt;<\/span>\r\n\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">collection<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"orderItems\"<\/span> <span class=\"hljs-attr\">ofType<\/span>=<span class=\"hljs-string\">\"OrderItem\"<\/span> <span class=\"hljs-attr\">resultMap<\/span>=<span class=\"hljs-string\">\"orderItemMap\"<\/span>\/&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">resultMap<\/span>&gt;<\/span>\r\n\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">resultMap<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"orderItemMap\"<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"OrderItem\"<\/span>&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">id<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"id\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"item_id\"<\/span>\/&gt;<\/span>\r\n  <span class=\"hljs-comment\">&lt;!-- \u5176\u4ed6\u5c5e\u6027\u6620\u5c04 --&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">resultMap<\/span>&gt;<\/span>\r\n\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"getOrder\"<\/span> <span class=\"hljs-attr\">resultMap<\/span>=<span class=\"hljs-string\">\"orderMap\"<\/span>&gt;<\/span>\r\n  SELECT *\r\n  FROM orders\r\n  WHERE order_id = #{orderId}\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Define the relationship with another query statement using elements, specify the associated fields, and map the results of the query statement.<\/li>\n<\/ol>\n<p>The code sample is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">&lt;!-- Order\u7684\u6620\u5c04\u6587\u4ef6 --&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">resultMap<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"orderMap\"<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"Order\"<\/span>&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">id<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"id\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"order_id\"<\/span>\/&gt;<\/span>\r\n  <span class=\"hljs-comment\">&lt;!-- \u5176\u4ed6\u5c5e\u6027\u6620\u5c04 --&gt;<\/span>\r\n\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">collection<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"orderItems\"<\/span> <span class=\"hljs-attr\">ofType<\/span>=<span class=\"hljs-string\">\"OrderItem\"<\/span> <span class=\"hljs-attr\">select<\/span>=<span class=\"hljs-string\">\"getOrderItemsByOrderId\"<\/span>\/&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">resultMap<\/span>&gt;<\/span>\r\n\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"getOrder\"<\/span> <span class=\"hljs-attr\">resultMap<\/span>=<span class=\"hljs-string\">\"orderMap\"<\/span>&gt;<\/span>\r\n  SELECT *\r\n  FROM orders\r\n  WHERE order_id = #{orderId}\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\r\n\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"getOrderItemsByOrderId\"<\/span> <span class=\"hljs-attr\">resultType<\/span>=<span class=\"hljs-string\">\"OrderItem\"<\/span>&gt;<\/span>\r\n  SELECT *\r\n  FROM order_items\r\n  WHERE order_id = #{orderId}\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>The above are two methods to achieve nested one-to-many queries in MyBatis, you can choose the suitable method according to your specific needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In MyBatis, the method to implement a nested query for one-to-many relationships is to use either nested result mapping or nested select. Elements are used to define one-to-many relationships. For example, there is an Order entity class and an OrderItem entity class, where one order can contain multiple order items. The relationship with OrderItem can [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-19949","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the method for performing nested queries in MyBatis for one-to-many relationships? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the method for performing nested queries in MyBatis for one-to-many relationships?\" \/>\n<meta property=\"og:description\" content=\"In MyBatis, the method to implement a nested query for one-to-many relationships is to use either nested result mapping or nested select. Elements are used to define one-to-many relationships. For example, there is an Order entity class and an OrderItem entity class, where one order can contain multiple order items. The relationship with OrderItem can [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T19:44:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T16:55:23+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"What is the method for performing nested queries in MyBatis for one-to-many relationships?\",\"datePublished\":\"2024-03-15T19:44:50+00:00\",\"dateModified\":\"2024-03-21T16:55:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\"},\"wordCount\":157,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\",\"name\":\"What is the method for performing nested queries in MyBatis for one-to-many relationships? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T19:44:50+00:00\",\"dateModified\":\"2024-03-21T16:55:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the method for performing nested queries in MyBatis for one-to-many relationships?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the method for performing nested queries in MyBatis for one-to-many relationships? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/","og_locale":"en_US","og_type":"article","og_title":"What is the method for performing nested queries in MyBatis for one-to-many relationships?","og_description":"In MyBatis, the method to implement a nested query for one-to-many relationships is to use either nested result mapping or nested select. Elements are used to define one-to-many relationships. For example, there is an Order entity class and an OrderItem entity class, where one order can contain multiple order items. The relationship with OrderItem can [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T19:44:50+00:00","article_modified_time":"2024-03-21T16:55:23+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"What is the method for performing nested queries in MyBatis for one-to-many relationships?","datePublished":"2024-03-15T19:44:50+00:00","dateModified":"2024-03-21T16:55:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/"},"wordCount":157,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/","name":"What is the method for performing nested queries in MyBatis for one-to-many relationships? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T19:44:50+00:00","dateModified":"2024-03-21T16:55:23+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-performing-nested-queries-in-mybatis-for-one-to-many-relationships\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the method for performing nested queries in MyBatis for one-to-many relationships?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=19949"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19949\/revisions"}],"predecessor-version":[{"id":53719,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19949\/revisions\/53719"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}