2013-04-12 5 views
2

Я использую Hibernate Search. У меня есть два класса: Статья и Издатель.Hibernate Search - Reindex при обновлении связанного объекта

public class Publisher { 
    private String name; 
} 

public class Article { 
    private Publisher publisher; 
    private String title; 
    private String description; 
} 

Я хочу, чтобы создать индекс для объединенного поля, которое содержит все поля в статье класса и имени поля в классе Publisher.

Требование состоит в том, чтобы, когда имя издателя было изменено и сохранено в базе данных, все статьи этого издателя также должны быть переиндексированы. Как это сделать? Большое спасибо!!!

ответ

3

Вы должны использовать @IndexedEmbedded и @ContainedIn. Первый на издатель в Статья и последняя на статьи в Издатель. На данный момент у вас нет статей Поле в Издатель, но для этой работы вам нужна двунаправленная ссылка.

+0

Привет, Харди, очень жаль длинную задержку. Меня перетащили на другую задачу. Большое спасибо за решение. Я попробовал, и это сработало! У меня есть следующий вопрос. Если я хочу включить индекс из Publisher в несколько классов, и я не хочу отражать отношения в классе Publisher, добавив дополнительные поля и аннотируя их с помощью @ContainedIn, есть ли другой способ встраивания индекса из Publisher в эти классы ? –

+0

@HongZ Лучше спросите его в форме другого вопроса. –

Смежные вопросы