Frage

Ich habe zwei verbundene Unternehmen, sagen

@Entity
public class Book {
    @ManyToOne
    Shelf shelf;
}

@Entity
public class Shelf {
    @OneToMany(mappedBy="shelf")
    Set<Book> books;
}

Wenn ich ein leeres Regal (keine Bücher) holen, erstellen und bleibe ein neues Buch zum Regal und hole dann das Regal wieder, seine Bücher Sammlung leer. Wenn ich es mit Debug-Protokollierung laufen sehe ich, dass Hibernate nicht zum zweiten Mal für das Regal nicht finden, es gibt ihr nur aus der Session-Cache, wo es nicht zu wissen, liegt, dass es Sammlung Bücher aktualisiert wurde.

Wie kann ich die Wirkung loszuwerden und den aktualisierten Zustand des Regals bekommen?

Danke,
Artem.

War es hilfreich?

Lösung

Scheint, wie Sie es von Hand im Rahmen einer einzigen Sitzung (Transaktion) zu halten haben. Weder @Cascade noch EAGER Einfluss Sitzung Cache

Andere Tipps

Versuchen einstellen Typen EAGER für Bücher in Regale-Set holen:

@Entity
public class Shelf {
    @OneToMany(mappedBy="shelf",fetch=FetchType.EAGER)
    Set<Book> books;
}

Ist @Cascade, was Sie suchen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top