Bom dia,
Estou com algumas dúvidas referente ao Interceptor de abertura de transação do VRaptor…
O VRaptor possui um Interceptor com o método:
public void intercept(InterceptorStack stack, ResourceMethod method, Object instance) {
Transaction transaction = null;
try {
transaction = session.beginTransaction();
stack.next(method, instance);
transaction.commit();
} finally {
if (transaction != null && transaction.isActive()) {
transaction.rollback();
}
}
}
1 - Esse interceptor impede que seja lancada uma LazyInitializaionException, caso eu possua por exemplo no meu jsp um {usuario.enderecoList}, sendo endereco list mapeado com Lazy?
2 - Caso eu precise abrir uma transação mais específica em um método de alguma classe de negócio minha, como posso fazer? já que o Interceptor abre uma geral.
3 -
finally {
if (transaction != null && transaction.isActive()) {
transaction.rollback();
}
}
nao entendi este finally, nao deveria ocorrer rollback caso alguma exception fosse lancada? nao deveria ficar dentro de um bloco catch?
desde ja, obrigado