Wie eine Sammlung artige Beziehung mit mappedBy in Hibernate aktualisieren?
-
06-09-2019 - |
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.
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?