所有帮助/评论表示赞赏
我有一个@OneToMany 关系。TVenue 和 TVenueItem 我希望能够在 Venue 上的各个字段上进行搜索,所以我用@Indexed 对其进行了标记。我的设置是这样的:
@Indexed
@Entity
public class TVenue implements java.io.Serializable {
private Set<TVenueItem> TVenueItems = new HashSet<TVenueItem>(0);
.......
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="TVenue")
public Set<TVenueItem> getTVenueItems() {
return this.TVenueItems;
}
...........
和
@Entity
public class TVenueItem implements java.io.Serializable {
private String name;
private TVenue TVenue;
...........
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="venue_id", nullable=false)
public TVenue getTVenue() {
return this.TVenue;
}
@Field
@Column(name="_name", nullable=false, length=100)
public String getName() {
return this.name;
}
.......
到目前为止没有问题。
现在,我想完全独立地搜索 TVenueItem 的字段,所以我也将其标记为 @Indexed。
问题:一旦我将@Indexed 添加到 TVenueItem,(手动)索引可能会永远挂起,可能是因为无限递归。
有谁知道如何避免这个问题?我知道 TVenue 是拥有实体,TVenueItem 的操作可以从 TVenue 完成。但是,无论如何,我都希望能够独立搜索 TVenueItem。
非常感谢
Ĵ