【Mybatis】-resultMap実装プライマリ・スレーブ・テーブル再帰クエリ


前提条件
最近,再構築システムにおける問題ライブラリ部分では,問題の多層の親子構造に関する問題型(ツリー構造に類似)があり,各問題は従表の関係にも関連している.以前はプログラムから再帰を実現できる方式であったが,sqlから直接実現される再帰のクエリはなかったので,ここで記録する.
テーブル構造関係
メインテーブルt_problem_main
表t_からproblem_sub
t_problem_mainにはツリー構造のような再帰関係がある可能性があります.t_problem_mainのいずれかのデータとt_problem_subはいずれも一対多の関係である.
resultMap作用
Mybatisで最も複雑な要素はresultMapであり、主な役割はマッピングルール、カスケード更新、カスタムタイプ変換器であり、結果セットのマッピング関係である.現在のバージョンのmybatisではresultMapのクエリーのみがサポートされています.
resultMap要素
ここではresultMap要素に含まれる基本的な要素を簡単に紹介しますが、具体的な内容は自分で深く勉強します.
  
         //               
            
            
        
        //       
        //     
        //     
        //   
            
        
    

ビジネス
問題幹idを提供し、この問題の完全な情報を検索します.このテーマには複数のサブテーマがあり、各テーマの下にオプションの内容がある可能性があります(対応従表)
実現構想.
親ノードidをクエリーし、要素の1対1のカスケードを使用して親問題幹帯のオプション内容をクエリーし、次に親ノードidをp_として使用します.id再帰クエリの下にあるサブ問題の詳細利用mybatisで
具体的な実装

    
        
        
        
            
            
            
            
            
        
        
    
    
    
        
        
            
            
            
            
            
        
        
    

    
    

    
    

    
    

まとめ
これにより,再帰クエリ中のデータベースの開閉操作を低減し,ユーザの使用時間を短縮するとともに,業務の主な圧力をデータベースが存在するサーバに置く.本当にこの2つの要素が具体的にどのように考えているのか分からないので、leaderに聞いてもしばらくどちらがいいか判断できないと言っていましたが、まあ、今はそうしましょう.少なくともユーザーが感じているのは少しいいです.