Ведение журнала аудита ADF

Мы разрабатываем приложение ADF, где мы столкнулись с требованием, чтобы мы регистрировали все операции в базе данных, которые пользователь выполнял, как и все операции DML (вставка, обновление, удаление), это может быть достигнуто путем переопределения doDML метод класса Entity Impl, но теперь есть еще одно требование, когда мы должны регистрировать событие, когда пользователь запросил записи, т.е. DQL.

Могу ли я узнать, какой метод реализации сущности вызывается, когда мы запрашиваем запись? или есть ли другой способ вести журнал аудита, когда пользователь запрашивает запись в ADF?

Спасибо


person user1784757    schedule 17.12.2015    source источник
comment
Привет, ребята, спасибо за ответ. Я попытался использовать метод executeQueryForCollection(), и он работает хорошо, но проблема в том, что метод вызывается несколько раз в случае отката. Любое решение для этого?   -  person user1784757    schedule 08.06.2016


Ответы (1)


Вы можете использовать этот метод для перехвата запросов:

protected void bindParametersForCollection(QueryCollection qc,
                                           java.lang.Object[] params,
                                           java.sql.PreparedStatement stmt)
                                    throws java.sql.SQLException

Пожалуйста, проверьте слайд 10, но используйте этот метод вместо executeQueryForCollection(), если вы запускаете JDev 12c

person Florin Marcus    schedule 17.12.2015
comment
Привет, Флорин, разве это не должен быть метод executeQueryForCollection? Если нет, не могли бы вы сообщить нам какую-нибудь ссылку на использование bindParametersForCollection. Спасибо ! - person Sid; 17.12.2015
comment
Могу я узнать, как им пользоваться? Также как он будет регистрировать событие запроса в базе данных? - person user1784757; 17.12.2015
comment
Жизненный цикл @Sid executeQueryForCollection был изменен в 12c, метод иногда вызывается без запуска запроса к базе данных. - person Florin Marcus; 17.12.2015