問題があります。
さまざまなタイプの「制限」を追加したり、結合したりする必要があるSQLがあります。これは、ユーザーの検索条件によって異なります。
このSQLは、1対多の関係を検索できるため、異なるテーブルを含みます。したがって、HibernateORMは私の要件をサポートできません。
このようなSQLステートメントの作成に役立つデザインパターンがあるかどうかを教えてください。
問題があります。
さまざまなタイプの「制限」を追加したり、結合したりする必要があるSQLがあります。これは、ユーザーの検索条件によって異なります。
このSQLは、1対多の関係を検索できるため、異なるテーブルを含みます。したがって、HibernateORMは私の要件をサポートできません。
このようなSQLステートメントの作成に役立つデザインパターンがあるかどうかを教えてください。
とまったく同じ要件があり、検索基準を定義するための文脈自由言語があり、に類似しているParseEntry
のオブジェクトに解析されます。を使用して解析テーブルにアクセスし、SQLクエリを生成します。これは、単一のエンティティに対して基準を生成する必要がある場合と同様です。そのため、基本的に、Visitorパターンを使用して、解析ツリーとエントリを訪問可能にし、さまざまなタイプの基準(SQL / Hibernateまたは将来的には他のもの)を生成できるようにしました。ParseTree
Restrictions
SQLQueryGeneratorVisitor
HibernateCriteriaGeneratorVisitor
言語ステートメントを表現する問題に適合するデザインパターンは、インタープリターパターンです。ただし、SQLパーサーのコーディングを開始する前に、ANTLRを確認してください。そして、もっと重要なことは、2つの質問を自問してください。