0

問題があります。

さまざまなタイプの「制限」を追加したり、結合したりする必要があるSQLがあります。これは、ユーザーの検索条件によって異なります。

このSQLは、1対多の関係を検索できるため、異なるテーブルを含みます。したがって、HibernateORMは私の要件をサポートできません。

このようなSQLステートメントの作成に役立つデザインパターンがあるかどうかを教えてください。

4

2 に答える 2

0

とまったく同じ要件があり、検索基準を定義するための文脈自由言語があり、に類似しているParseEntryのオブジェクトに解析されます。を使用して解析テーブルにアクセスし、SQLクエリを生成します。これは、単一のエンティティに対して基準を生成する必要がある場合と同様です。そのため、基本的に、Visitorパターンを使用して、解析ツリーとエントリを訪問可能にし、さまざまなタイプの基準(SQL / Hibernateまたは将来的には他のもの)を生成できるようにしました。ParseTreeRestrictionsSQLQueryGeneratorVisitorHibernateCriteriaGeneratorVisitor

于 2012-09-05T16:01:12.190 に答える
0

言語ステートメントを表現する問題に適合するデザインパターンは、インタープリターパターンです。ただし、SQLパーサーのコーディングを開始する前に、ANTLRを確認してください。そして、もっと重要なことは、2つの質問を自問してください。

  1. さまざまなSQLの数は、5〜10の異なるクエリをプログラミングする(if-elseステートメント)のではなく、一般的なSQLインタープリターソリューションを開発する努力を正当化するのでしょうか?
  2. Hibernateリファレンスマニュアルを詳細に確認しましたか?
于 2012-09-06T08:29:17.970 に答える