当前位置: 首页 > 知识库问答 >
问题:

hibernate-search onet many无限索引

车子平
2023-03-14

感谢所有帮助/评论

我有@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是所有实体,可以从TVenue对TVenueItem进行操作。然而,不管怎样,我希望能够在TVenueItem上独立搜索。

非常感谢。

J。

共有1个答案

洪英豪
2023-03-14

我找到了一些解决方案。尝试使用这样的东西:

@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")
    @IndexedEmbedded(prefix = "tvenue.item")
    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)
    @ContainedIn
    public TVenue getTVenue() {
        return this.TVenue;
    }

    @Field
    @Column(name="_name", nullable=false, length=100)
    public String getName() {
        return this.name;
    }
    .......

更多信息请看这里

 类似资料:
  • 我使用< code > Hibernate Search 4 . 5 . 1 编写了< code>Spring web-app。当我尝试搜索时,它返回一个条目列表。我认为索引中的问题。用于索引的目录已创建,但实体保存文件后,目录中的文件不变。 这是我的Spring配置文件 我的实体文件

  • 产品类别: 提供程序类: Prices_1类:

  • 我如何从弹性搜索中获得所有的结果,因为结果只显示限制只有10个。我得到了一个查询,如下所示:

  • 我得到了错误下的无限递归。 下面是我的代码 另一个班 我无法理解为什么在UI上获取此值时会出现此错误。

  • 我有一个名为User的实体类,其中包含数据库的OneToMany列: 当我将用户插入数据库时,一切正常,他的汽车也被添加到user_cars表中。当检索汽车时,我得到这个异常: 我已经搜索了其他答案,但没有找到如何解决它。这就是我试图检索用户的方式。 问题是什么?我如何解决?我不明白后台发生了什么。

  • 问题内容: 当尝试将具有双向关联的JPA对象转换为JSON时,我不断 我所发现的只是该线程,基本上以建议避免双向关联为结尾。有谁知道这个春季错误的解决方法? ------编辑2010-07-24 16:26:22 ------- 代码段: 业务对象1: 业务对象2: 控制器: JPA实施学员DAO: persistence.xml 问题答案: 您可以使用它来打破循环。