0
を経由して、私は休止状態では、次の2つのクラスを持っているし、検索注釈を休止:休止検索:子供の店舗一覧や検索投影
親クラス:
@Indexed
@Entity
public class Parent {
@Id
@Column(name="parent_id")
private Long id;
@Field(store = Store.YES)
private String name;
@IndexedEmbedded
@OneToMany(fetch = FetchType.LAZY, mappedBy = "parent", targetEntity = Child.class)
private List<Child> childList;
//getters and setters
}
子供クラス:
@Entity
public class Child {
@Id
private Long id;
@ManyToOne(targetEntity = Parent.class)
@ContainedIn
@JoinColumn(name = "parent_id")
private Parent parent;
@Field(store = Store.YES)
private String name;
}
上記のシナリオのインデックスを作成しました。今私は、特定の親の名前を検索して、すべての子の名前を取得しようとしています。
次のように私はフィールド上の突起を使用:私は、検索結果を取得するためにクエリを実行しようとすると
Query searchQuery = queryBuilder.keyword().onField("name").matching("test").createQuery();
FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery(searchQuery, Parent.class);
fullTextQuery.setProjection("childList.name");
は今、私は親モデルの唯一の最初の子の名前を取得しています。
ルークを使ってインデックスを見ると、ドキュメントのすべての値を見ることができます。
インデックスに格納されているすべての子名のリストを取得するにはどうすればよいですか?
可能な重複[休止状態のLucene検索と投影を使用する方法](https://stackoverflow.com/questions/43370523/how-to-use-projections-with-hibernate-lucene-search) –