4

コマンド ライン ベースのアプリケーションで、データベースの結果をフィルタリングするための基本的なサポートを提供したいと考えています。このために、ユーザー入力を解析する必要があります。これらのトークンをサポートしたい:

  • andornotおよび括弧を含むブール (論理) 演算子
  • 変数、文字列、日付、数値
  • 比較演算子: =, !=, <, >, >=,<=

したがって、入力文字列は次のようになります。

(age > 3 or name != 'tom') and city='london' and ((birthday=01.01.2010 or birthday >= 01.01.2013))

基本的なもの。

質問: そのための (トークナイザーと) パーサーはどこで入手できますか?

  • これらの基本をサポートするライブラリは既にありますか?
  • そうでない場合は、トークナイザーとパーサー用の Java クラスを生成するツールがあることを知っています。おすすめはありますか?

次に、結果を JPA の に変換しPredicateますCriteriaQuery。まず、コマンド ラインで JPQL を提供し、ユーザーに SQL ベースの制限を指定させることができると考えました。しかし、データベース スキーマが変更された場合などに、機能しなくなる可能性のある条件をユーザーに記述させたくありません。

4

1 に答える 1