この環境でトランザクションを処理するための最良の方法は何ですか?
Transacaoのコレクションを持つTransacaoクラスがあります。
public class Transacao {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pai")
private List<Transacao> filhos;
}
これをEJBからJSFにロードします。次のようになります。
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でfilhoをフェッチすることを検討しています。これに対するより良い解決策はありますか、どちらがより良いですか?