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.

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top