Connecting to a separate database per role/login via the RenderMapping API
Connecting to a separate database per role/login is a classical use case of multitenancy. Commonly, you have a pillar database (let's call it the development
database) and several other databases with the same schema (let's call them the stage
database and the test
database). All three databases belong to the same vendor (here, MySQL) and have the same schema, but they hold data for different roles, accounts, organizations, partners, and so on of the application.
For simplicity, the development
database has a single table named product
. This database is used for generating jOOQ artifacts, but we want to execute the queries depending on the current role (currently logged in user) against the stage
or test
databases.
The key to such implementation relies on juggling with the jOOQ RenderMapping
API. jOOQ allows us to specify at runtime an input schema (for instance, development
) and an output schema...