Olá pessoal, blz? Seguinte, estou com um problema me enchendo o saco aqui. :evil: Estou criando um aspecto para auditar operações de escrita no banco para todas as aplicações. Mas a única coisa que esta rotina faz é registrar o usuário da aplicação na sessão do banco e uma trigger existente nas tabelas pega esse usuário e faz o resto do serviço. Então, para registrar esse usuário no banco, chamo uma procedure com o createNativeQuery do JPA. O problema é que me parece que as operações estão sendo executadas em transações/conexões diferentes pois, quando a inclusão é feita, recebo uma exception falando que a trigger não encontrou o usuário registrado.
O método que é interceptado fica +/- assim:
@Transactional
public void incluir(Foo foo) throws Exception {
//Aqui o aspecto é chamado e registra o usuário no banco, nomalmente.
dao.incluir(foo);
}
O método do aspecto também está com o @Transacional (como o acima). Depurando o código, percebi que as operações estão sendo executadas em EntityManagers (instâncias) diferentes. É normal?
Bom, se quiserem mais detalhes, posso passar. Valeu!