1
在此環境中處理事務的最佳方式是什麼?使用JSF2,EJB3,JPA2的事務
我有一個Transacao類,它有一個Transacao集合。
public class Transacao {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pai")
private List<Transacao> filhos;
}
我在JSF從EJB加載此,像:
public class TransacaoBean {
@EJB
private TransacaoService transacaoService;
private void edit(Long id) {
this.transacao = transacaoService.findById(id);
}
}
雖然,如果我想獲得FILHOS的收藏,我必須這樣做:
public class TransacaoBean {
...
private void edit(Long id) {
this.transacao = transacaoService.findById(id);
log.info(this.transacao.getFilhos.size()); //this throws a LazyInitializationException
}
}
,我得到一個例外。
在我的JSF中加載這個文件的最佳方式是什麼?我正在考慮創建一個Filter
並使用USerTransaction
來保持該請求的事務處於打開狀態,或者在我的EJB中提取filhos。有沒有更好的解決方案,哪個更好?