So, I'm working on using Jooq to create a caching layer over Postgres. I've 
been using the MockConnection/MockDataProvider objects to intercept every 
query, and this is working, but I'm having a few issues.

First, how do I determine between reads and writes? That is, how do I tell 
whether a query is an insert/update/etc or a select, given only the 
MockExecuteContext that's passed into the execute method in 
MockDataProvider?

And I'm a bit confused on how I can do invalidations. The basic scheme I'm 
implementing right now is that whenever a "write" query is made to a table, 
I invalidate all cached queries that involve that table. This goes back to 
my first question, on telling different types of queries from each other, 
but also brings up another issue: how would I identify the tables used in a 
query given only the sql string and the bindings (both are attributes of 
MockExecuteContext)? 

Also, is this a correct approach at caching? My first thought was to 
override the fetch() method, but that method is final, and I'd rather not 
change something already embedded in Jooq itself. This is the only other 
way I could think of to intercept all requests made so I could create a 
separate, persistent caching layer. 

I have seen this question 
<https://groups.google.com/forum/#!topic/jooq-user/xSjrvnmcDHw>, but I'm 
still not clear on how Lukas recommended to identify tables from the 
object. I can try to implement a Postgres NOTIFY, but I wanted something 
native in Jooq first. I've seen this issue 
<https://github.com/jOOQ/jOOQ/issues/2665> pop up a lot too, but I'm not 
sure how it applies. 

Keep in mind that I'm new to Jooq, so it's quite possible that I'm missing 
something obvious. 

Thanks!

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to