Come aggiornare una collezione-tipo di relazione con mappedBy in Hibernate?
-
06-09-2019 - |
Domanda
Ho due entità correlate, ad esempio
@Entity
public class Book {
@ManyToOne
Shelf shelf;
}
@Entity
public class Shelf {
@OneToMany(mappedBy="shelf")
Set<Book> books;
}
Se prelevo uno scaffale vuoto (niente libri), creare e persistere di un libro nuovo allo scaffale e poi prenderti ancora una volta che mensola, la sua collezione di libri è vuoto. Quando eseguo con la registrazione di debug vedo che Hibernate non cerca la mensola per la seconda volta, si restituisce solo dalla cache di sessione, in cui risiede non sapendo, che è libri di raccolta è stato aggiornato.
Come posso eliminare l'effetto e ottenere lo stato aggiornato della piattaforma?
Grazie,
Artem.
Soluzione
Sembra che si deve mantenere a mano nell'ambito di una singola sessione (transazione). Né @Cascade né EAGER cache di sessione influenza
Altri suggerimenti
Prova a impostare il tipo avido di libri ambientati in Shelf prendere:
@Entity
public class Shelf {
@OneToMany(mappedBy="shelf",fetch=FetchType.EAGER)
Set<Book> books;
}
È @Cascade quello che stai cercando?