Qualcuno ha una soluzione alternativa per questo problema: https://hibernate.atlassian.net/browse/HHH-9663?La rimozione orfana JPA non funziona per le relazioni OneToOne
Anche io sto affrontando un problema simile. Quando ho creato una relazione unilaterale (senza riferimenti inversi) tra due entità e ho impostato l'attributo di rimozione orfano su true, l'oggetto di riferimento è ancora nel database dopo aver impostato il riferimento su null.
Ecco il modello di dominio del campione:
@Entity
public class Parent {
...
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "child_id")
private Child child;
...
}
@Entity
public class Child {
...
@Lob
private byte[] data;
...
}
Attualmente sto lavorando intorno a questo orfani eliminando manualmente.
Ho provato questo e si sta lavorando come hai descritto, ma per qualche motivo il mio il caricamento lento ha smesso di funzionare ora. Ho esaminato la query generata e posso vedere due chiamate selezionate che si verificano per ottenere il genitore e l'altro per il figlio e il genitore iscritto. Qualche idea? – ankurvsoni
Due selezioni significa che il LAZY funziona. Puoi unire FETCH usando una query HQL/JPQL. –
Intendo dire quando faccio qualcosa del genere - Parent result = repository.findOne (parent.getId()). Vedo due selezioni. Pensavo solo quando facevo qualcosa del tipo: result.getChild() - vedrei la seconda selezione. Non è un'ipotesi giusta? – ankurvsoni