Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

14.3.2.3. ResultTransformer

プロジェクション結果は Object 配列として返されます。オブジェクトに使用されるデータ構造がアプリケーションの要件と一致しない場合は、ResultTransformer を適用します。ResultTransformer は、クエリーの実行後に必要なデータ構造を構築します。

例14.47 プロジェクションでの ResultTransformer の使用

org.hibernate.search.FullTextQuery query = 
    s.createFullTextQuery( luceneQuery, Book.class );
query.setProjection( "title", "mainAuthor.name" );

query.setResultTransformer( new StaticAliasToBeanResultTransformer( BookView.class, "title", "author" ) );
List<BookView> results = (List<BookView>) query.list();
for(BookView view : results) {
    log.info( "Book: " + view.getTitle() + ", " + view.getAuthor() );
}
ResultTransformer 実装の例は、ibernate Core codebase を参照してください。