Tenho o seguinte código:
[code]public void save(TaxonomiaModel taxonomiaModel,List conceitos) {
Long id = (Long) taxonomiaDAO.save(taxonomiaModel);
//necessário para tirar do estado transient…
taxonomiaModel = taxonomiaDAO.load(id);
conceitoService.saveAll(conceitos, taxonomiaModel); //salvo os conceitos pai e filhos
this.updateTaxonomiaXML(taxonomiaModel);
}
public void updateTaxonomiaXML(TaxonomiaModel taxonomiaModel){
List<ConceitoModel> conceitosPersistidos = conceitoService.getByTaxonomia(taxonomiaModel); //aqui tento recuperar todos conceitos persistidos, com seus respectivos filhos
String treeXml = new GenerateTreebolicXML().drawTree(conceitosPersistidos);
taxonomiaModel.setTaxonomiaXML(new ClobImpl(treeXml));
taxonomiaDAO.update(taxonomiaModel);
}[/code]
Como podem ver, na linha comentada, ele deveria trazer os filhos que foram atualizado em conceito.saveAll
mas debugando, só traz null todos os filhso.
O autorelacionamento está feito da seguinte maneira:
[code]@ManyToOne(fetch = FetchType.EAGER,cascade={CascadeType.PERSIST,CascadeType.MERGE})
@JoinColumn(name = “CONCEITO_ID_PAI”,insertable = false, updatable = false)
@Fetch(FetchMode.JOIN)
private ConceitoModel conceitoPai;
@OneToMany(mappedBy = "conceitoPai", fetch = FetchType.LAZY,cascade=CascadeType.ALL)
private List<ConceitoModel> conceitosFilhos;[/code]
Como faço para trazer todos conceitos filhos que foi salvo na mesma transação?
Já tentei usar cascade de outro tipo e não funcionou, alguém sabe como resolver para trazer os conceitos filhos associados a um pai nessa situação?
p.s. - essas operações estão dentro de uma mesma transação gerenciada pelo spring.