Gerar log ao ser feito um select - Seam Hibernate

Boa tarde pessoal,

eu tenho que gerar um log toda vez que houver um select no banco.

no sistema já existe no persistence.xml a chamada quando existe um delete ou update, mas não estou encontrando na documentação um evento para select.

Alguém sabe como fazer para select?

Já tentei colocar um Events.instance().raiseEvent no abstractHome, mas não funcionou. Acredito que por a classe estar no core não enxerga o observer nos outros projetos.

Alguém sabe como posso gerar o log para cada select do sistema?

Estou usando o Seam e Hibernate.

:slight_smile:

[code]

<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="PersistenceUnit" transaction-type="JTA">
    <properties>
    	<property name="hibernate.show_sql" value="true" />
	
    </properties>
</persistence-unit>

[/code]

opa felipeguerra, minha intenção é pegar o momento da consulta e gerar um log no banco para auditoria.

Existe uma tabela responsável por informar ao administrador que ‘tal pessoa’ acessou ‘tal página’. E nessa tabela ainda fica o sql que foi feito.

Vlw pela ajuda. :slight_smile:

descobri como fazer:

persistence.xml:

o método a ser chamado é esse:

@Override
public void onPostLoad(PostLoadEvent event) {

//////

}

O problema agora é saber quais propriedade do event chamar. Eu preciso pegar o select que é feito na hora, mas o event traz muita coisa, até update. Como saber qual propriedade traz o select atual?

grato pela ajuda.

Bom dia pessoal

resolvi o problema

coloquei no persistence.xml a propriedade. Daí toda vez que houver um evento para select o método onPostLoad é chamado.

daí eu criei um laço para poder criar a string que continha o campo e o valor do campo e adicionava em uma lista do tipo String:

for(String nome: event.getPersister().getClassMetadata().getPropertyNames()) {
nomesList.add(String.format("%s=%s", nome, event.getPersister().getPropertyValue(event.getEntity(), nome, EntityMode.POJO)));
}

e depois persistia ao banco.

Claro que não fiz isso sozinho. Tive a ajuda de alguns amigos.

De todo jeito ficou inviável ter um log com os selects pq são muitos e a aplicação fica lenta, mas fica aí a dica para quem quiser usar. :wink: