1

JDO を使用してデータベースにクエリを実行しています。エンティティ クラスは次のようになります。

class Entity
{
  // other members of the class
  List<String> stuff;

  // members and methods
}

標準化されたインターフェースに対して Web サービスを作成しています。このインターフェイスを使用すると、ユーザーは一連のフィルターに基づいてエンティティ オブジェクトを検索できます。これらの 1 つは、可能なもののリストです。より明確にするために、ユーザーは文字列のリストを提供できます。これを stuffQuery と呼びます。ユーザーは、stuffQuery リストからの要素が少なくとも 1 つ含まれているスタッフ リストのすべての Entity オブジェクトを返すようにサービスに要求できます。JDO でこのクエリを記述する方法が見つかりません。実際には、stuff と stuffQuery の共通部分が空でないすべての Entity オブジェクトが返されます。

私の唯一の考えは、stuffQuery を基本的にループして、一連の stuff.contains(stuffQuery.get(idx)) フィルターを追加してフィルターを作成し、JDO クエリのフィルター文字列に結合することです。それは醜いです。私はそれが気に入りません。よりエレガントなソリューションがあれば、それを知っていただければ幸いです。

環境: Java、Spring Framework、Datanucleus

4

1 に答える 1

1

私は以前に同様の状況に直面しました。実際には問題を解決しませんでしたが、別の方法でオブジェクトをクエリしました。文字列リストをループしてオブジェクトをクエリすることをお勧めします。

于 2013-05-16T17:40:23.287 に答える