0
package example;
...

@Entity
@Indexed
public class Book {

@Id
@GeneratedValue
private Integer id;

@Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO)
private String title;

@Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO)
private String subtitle; 
@Field(index = Index.YES, analyze=Analyze.NO, store = Store.YES)
@DateBridge(resolution = Resolution.DAY)
private Date publicationDate;

@IndexedEmbedded
@ManyToMany 
private Set<Author> authors = new HashSet<Author>();

@OneToMany(mappedBy="book")
List<BookPages> bookPages;

}

1) 検索結果が Book.class タイプの場合、結果には @ManyToOne オブジェクト (bookPages) が含まれますか、それとも個別にロードする必要がありますか? 結果を表示するためにそれらが必要だからです。

2) 検索にネイティブ SQL 句を追加することは可能ですか? 結果を制限する必要があるため、Book.class で宣言されていない別のテーブルを結合する必要があります。

4

2 に答える 2

1
  1. これは基本的な Hibernate ORM の質問であり、Hibernate Search とは関係ありません。はい、ゲッターを呼び出す/フィールドにアクセスするだけで、いつでも 1 つのエンティティからその関係にナビゲートできます。 JOIN) またはオンデマンドで透過的にフェッチします。ただし、この構成は機能に影響を与えるものではなく、パフォーマンス チューニング オプションです。
  2. いいえ、SQL と Hibernate Search (Fulltext) クエリを混在させることはできません。あなたができることは、マッピング内の他のテーブルから必要なデータを公開することです. FullTextQuery の制限を直接。fill は、どの SQL よりもはるかに高速に実行されます。
于 2012-10-14T10:18:44.070 に答える
0

結果の少なくとも 1 つを反復せずに両方のクエリの結果を交差させる方法がないため、ネイティブ SQL と Hibernate 検索クエリを混在させることはできません。

この正確な質問については、ドキュメント リファレンスを参照してください。 Hibernate Search - FAQ - HQL と Lucene クエリを混在させることはできますか? http://hibernate.org/search/faq/

于 2014-12-05T16:34:37.177 に答える