0

こんにちは私はこのようなEntityObjectを持っています

public class Adm{
private String id;
private String version;
private String name;
private String mimetype;
    ... 
    ...
    ...

}

同じ名前のオブジェクトの最高バージョンを持つすべてのオブジェクトにフィルターを追加したいと思います。フィルタを使用したり、クエリを作成したりするときに、これを行う方法を知っている人はいますか?

HibernateSearchバージョン3.3.0を使用しています。

// Trind

4

1 に答える 1

0

検索でフィルタリングを行う方法は、FullTextFiltersを使用することです。http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-filterを参照してください 。パラメーターを有効にすると、フィルターにパラメーターを渡すことができます。

fullTextQuery.enableFullTextFilter("version").setParameter( "max", 1001 );

必要な数のパラメーターを渡すことができ、必要なパラメータータイプも渡すことができます(フィルターの実装で適切にキャストする必要があります)。最大値を決定するには、おそらく別のクエリが必要になります。結局のところ、HQLまたはCriteriaクエリかもしれません。フィルタ内では、 NumericRangeQueryを使用できます。もちろん、これはすべてドメインモデルによって異なります。実行しようとしているHibernateSearchアノテーションとHibernateSearchクエリが含まれていません。また、最大バージョンは事前に決定してキャッシュできるものですか?うまくいけば、これはあなたにいくつかのポインタを与えます。

于 2011-05-17T08:47:14.930 に答える