On Thursday, June 28, 2012 4:55:20 AM UTC-4, Lukas Eder wrote: > > In my case, I'd like to see TableFieldImpl become public (so I can > derive > > it). > > That seems like a bad idea at first. These "impl" classes change > frequently between releases, and I wouldn't like to see them being > part of the public API. What extensions do you need? >
We have an xml file that describes our DB schema. As well, it describes meta information that will be needed by an ExecuteListener. My plan is to write my own metadata generator, that drives of the xml file (vs a live DB server). It would generate largely the same content as the jooq generator does but instead of TableFieldImpl instances for each field, it would MyTableFieldImpl instances. That would necessitate making TableFieldImpl public. Note that TableImpl is already public. Here's why.. Our schema xml file can specify that some columns take on some extra behavior. I'm skipping the details of that extra behavior for now. The ExecuteListener will need to intercept INSERT and UPDATE calls, inspect the Query object (thus my needing of more public API), check the conditions for that extra behavior and then let the call through. In another use case, our ExecuteListener will need to add some extra WHERE clauses to certain queries. It may seem bizarre, but that's what our current infrastructure does so we'll need to maintain that if we switch to jooq. There are some other use cases, but they all fall along similar lines and have the same overall requirement. We need to be able to inspect queries. > > I'm also trying to do several things in an ExecuteListeners and it > > would be nice to see InsertQuery.getInto() move into the Interface and > make > > public. > > That probably makes sense. I filed this as feature request #1492: > https://sourceforge.net/apps/trac/jooq/ticket/1492 > What is the typical process from feature request to getting on the roadmap? > I'll see what other internals can be exposed in the public non-DSL API > I need a way to see the field/value pairs for an INSERT query. That appears to be getValues(). > Could you explain this a bit more? Maybe there is another solution, > not involving API changes? > Some of the specifics I'd rather not go into detail about on a public forum. I hope I've painted the picture clearly enough. Thanks a lot for the time and consideration. ~S
