【发布时间】:2016-08-18 18:35:13
【问题描述】:
我对 Hibernate Search 项目还很陌生,所以任何建议都会被采纳。假设我有一个实体 Foo 和实体 Bar 以一对多关系连接。映射可能如下所示:
@Entity
@Table(name="foos")
@Indexed
public class Foo {
@Id
private Long id;
@IndexedEmbedded
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "bar_id")
private Bar bar;
//getters, setters, etc.
}
@Entity
@Table(name = "bars")
public class Bar {
@Id
private Long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy="bar")
private Set<Foo> fooSet;
//getters, setters, etc.
}
现在,当我尝试使用 lucene/hibernate search dsl 查询 Foo 表时,我得到如下查询结果:
select this_ from foos this_ where this_.id in (id collection fetched from lucene)
所以我的 Bar 实体由于延迟获取类型而被休眠代理。我的问题是有没有一种方法来获取 Foo 和 Bar 使用一个查询(使用连接或其他)?
【问题讨论】:
标签: java hibernate lucene hibernate-search