从独立索引中删除,不会反映已删除实体用作@IndexedEmbedded的索引

问题描述 投票:0回答:1

我们正在使用休眠搜索5.9.2。

我们有两个具有A和B的实体。A与B具有一对多关系,并且我们按如下方式使用它们:

@Entity
@Indexed(index="master_index")
public class A{

        @IndexedEmbedded
    private Set<B> b= new HashSet<>(0);
        //Setter and getter for b

}

@Entity
@Indexed(index = "b")
public class B{
    @ContainedIn
    private A a;
        //Setter and getter for a
}

一对多关系在.hbm文件下定义。

现在,当某些记录直接从索引B中删除(但是通过休眠过程)时,不会从'master-index'中删除同一记录。

[让我们假设我有一个记录'xyz',该记录在索引B下可用,并且在'A'下也可用,并且具有类似DUDE(A的数据)的关系可以包含很多数据,例如'xyz'。

DUDE-> XYZ

预期结果应该是记录应从索引'b'以及'master-index'中删除。

冬眠搜索提供了一种处理这种情况的方法。

hibernate-search
1个回答
0
投票

Hibernate Search希望双向关联在双方上均保持一致。

这意味着,删除B时,应将其从A.b中删除。这将导致实体A发生更改,这将触发该实体的重新索引。

如果A未重新编制索引,则可能意味着您忘记从B中删除A.b

© www.soinside.com 2019 - 2024. All rights reserved.