I can't recall why but I had some issue with GeneratorStrategy.getFile and the way I did it just turned out easier (for me).
The reason why the separation is nice because you can use the generated POJO for an internal API (aka microservices with a message bus).
This works particularly well since our services are protocol driven (that is the message aka POJO is the contract and not endpoints like REST/SOAP).
Consequently I make a maven submodule (or top level project) that has generates the POJO and jOOQ specific stuff.
Because I can't separate the classes out I make jOOQ as an optional dependency. It is not ideal because the generated jOOQ specific classes (Record, Table etc) crowds the name space but at least the compiler catches this (if your not using jOOQ in the client which we often are...).
This is why I make sure to append "Table" to the generated Table classes because it is very easy to accidental import them.
In the future we may just manage our POJOs independently and rely on MapStruct (
http://mapstruct.org/ like ModelMapper but generated code). But then we are copying two times (Our POJO -> jOOQ POJO -> jOOQ Record). Not ideal but probably inconsequential to performance.
-Adam