2016-06-10 6 views
1

В режиме спящего режима существует ли способ использовать ContainedIn для обновления индекса по несвязанному концу одностороннего отношения?Hibernate Search ContainedIn on one-way Relationship

Говорят, у меня есть три класса A, B, C, которые связаны, как это:

@Indexed 
Class A { 
    @IndexedEmbedded 
    B classBObject 
} 

Class B { 
    @IndexedEmbedded 
    C classCObject 
} 

Class C { 
    @ContainedIn 
    B classBObject 

    @Field 
    int myInt 
} 

Есть ли способ, короткий сделать отношения двунаправленным, чтобы отметить класс B, содержащийся в классе А так что, когда я обновляю myInt в классе C, он вызывает обновление в индексе для обновления встроенного поля в индексе класса А?

ответ

0

Нет, отношения для этого должны быть двусторонними.

N.B. нет никакого реального недостатка в Hibernate, добавляя противоположную сторону отношения, кроме необходимости добавлять свойство (или поле). Так что может быть интересно также прокомментировать, почему вы хотите этого.

+0

Большое значение. Это было бы непрактично; Класс B на самом деле не заботится о том, что существует класс A, и будет тонна класса A, поэтому управление отношениями назад будет громоздким. –

+0

С Hibernate 5, если вы применяете свои классы, вам больше не нужно синхронизировать обе стороны связи (это автоматическое обновление, вы можете обновить обе стороны). Таким образом, единственный недостаток - правильно настроить метаданные. – Sanne

+0

Закончилось, так что содержащиеся в нем работают как шарм. Спасибо за помощь. –