I was going to have a go at doing something similar in JOOQ using the ExecuteListener. On an insert or update I was going to parse the query to get the table and fields, then fire an event to say a table has been updated / inserted and what fields and values. I guess the downside is all data updates need to go through JOOQ and you wouldn't be able to use stored procedures.
I was going to use this to fire before a transaction was committed so extra validation could be done in the application.
