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 を参照してください。