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.
Não impede… se der qualquer exception ele não vai commitar a transação e vai dar um rollback… mas a exceção será lançada normalmente
se vc precisa de uma transação específica, vc não pode usar essa solução geral do vraptor…
mas pq vc precisaria disso? usar mais de uma transação no mesmo request?
o finally é executado sempre: dando exception ou não…
se não deu exception, o interceptor vai executar um transaction.commit(), e a transação não estará mais ativa… logo não será feito o rollback
se der qualquer exception, o transaction.commit() não será executado, e a transação ainda estará ativa, daí será feito o rollback…