【发布时间】:2023-04-11 03:35:02
【问题描述】:
在这种环境中处理事务的最佳方式是什么?
我有一个 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 中获取文件。有没有更好的解决方案,哪个更好?
【问题讨论】: