2016-06-10 6 views
1

Gibt es in der Hibernate-Suche eine Möglichkeit, ContainedIn zu verwenden, um den Index am nicht verwandten Ende einer 1-Wege-Beziehung zu aktualisieren?Hibernate Search ContainedIn auf 1-Weg-Beziehung

Sagen, ich habe drei Klassen A, B, C, die wie folgt zugeordnet sind:

@Indexed 
Class A { 
    @IndexedEmbedded 
    B classBObject 
} 

Class B { 
    @IndexedEmbedded 
    C classCObject 
} 

Class C { 
    @ContainedIn 
    B classBObject 

    @Field 
    int myInt 
} 

Gibt es eine Möglichkeit, kurz die Beziehung bi-direktionale machen, Klasse B zu markieren, wie in der Klasse A enthalten Wenn ich myInt in Klasse C aktualisiere, wird ein Update im Index ausgelöst, um das eingebettete Feld im Index der Klasse A zu aktualisieren.

Antwort

0

Nein, die Beziehung muss dafür zweiseitig sein.

N.B. Es gibt keinen wirklichen Nachteil in Hibernate, indem Sie die andere Seite der Beziehung hinzufügen, außer dass Sie die Eigenschaft (oder das Feld) hinzufügen müssen. Es könnte also interessant sein, auch zu kommentieren, warum Sie das wollen.

+0

Sehr geschätzt. Es wäre nicht praktisch; Klasse B kümmert sich nicht wirklich darum, dass Klasse A existiert und es wird eine Tonne von Klasse A geben, so dass die Verwaltung der Beziehung zurück umständlich wäre. –

+0

Seit Hibernate 5 müssen Sie nicht mehr beide Seiten einer Beziehung synchronisieren, wenn Sie Ihre Klassen instrumentieren (es ist automatisch, Sie können beide Seiten aktualisieren). Der einzige Nachteil ist das korrekte Einrichten der Metadaten. – Sanne

+0

Hat es getan, damit das Enthaltene wie ein Zauber wirkt. Danke für die Hilfe. –

Verwandte Themen