Удаление из автономного индекса не отражается в индексе, где удаленная сущность используется как @IndexedEmbedded - PullRequest
0 голосов
/ 20 сентября 2019

Мы используем поиск в режиме гибернации 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 '.

Предоставляет ли поиск в спящем режиме способ справиться с этой ситуацией.

1 Ответ

0 голосов
/ 20 сентября 2019

Hibernate Search ожидает, что двунаправленные ассоциации будут обновляться последовательно с обеих сторон.

Это означает, что при удалении B ожидается, что вы удалите его из A.b.Это приведет к изменению сущности A, что приведет к повторной индексации сущности.

Если A не был переиндексирован, это, вероятно, означает, что вы забыли удалить B из A.b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...