Hi Carsten,

Are those tables in your database really case sensitive? In other words, do
you do:

CREATE TABLE VAccount ( ... );


or

CREATE TABLE "VAccount" ( ... );


Because in the first case, the H2 database will already lose your
upper/lower case information and report them to jOOQ's code generator in
all upper case. That would explain the KeepNamesGeneratorStrategy behaviour.

Hope this helps,
Lukas

2016-07-15 1:11 GMT+02:00 Carsten Langsdorf <[email protected]>:

> Hi everyone,
>
> I'm currently digging into jOOQ's code generation feature, and I'm running
> into issues with generated names.
> Over the years, I have developed my own naming pattern, and thus I would
> like to preserve names as they are, if possible. I will use some table and
> view names to explain the situation and the approaches I already have taken.
>
> Among others, I got the following tables and corresponding views in an H2
> database:
>
> Account
> Server
> ServerAccount
>
> V_Account
> V_Server
> V_ServerAccount
>
> And I'm trying to generate code for those while completely preserving the
> names.
>
> Here are the names I get from a plain generation run without any name
> manipulation:
>
> Account
> Server
> Serveraccount
>
> VAccount
> VServer
> VServeraccount
>
>
> That's not really what I wanted. A peek into the documentation led me to
> approach #1:
>
> <generator>
>     <!-- ... -->
>     <strategy>
>         <name>org.jooq.util.KeepNamesGeneratorStrategy</name>
>     </strategy>
> </generator>
>
>
> (Omitting the top level <configuration> tag and the <jdbc> section)
>
> Resulting names:
>
> ACCOUNT
> SERVER
> SERVERACCOUNT
>
> V_ACCOUNT
> V_SERVER
> V_SERVERACCOUNT
>
>
> Again, not quite. Digging further took me to approach #2:
>
> <generator>
>     <!-- ... -->
>     <strategy>
>         <matchers>
>             <tables>
>                 <table>
>                     <!-- no expression on purpose -->
>                     <tableClass>
>                         <transform>AS_IS</transform>
>                     </tableClass>
>                 </table>
>             </tables>
>         </matchers>
>     </strategy>
> </generator>
>
>
> Result: Same as above.
>
> Approach #3:
>
> <generator>
>     <!-- ... -->
>     <strategy>
>         <matchers>
>             <tables>
>                 <table>
>                     <expression>(\w)+</expression>
>                     <tableClass>
>                         <expression>$0</expression>
>                     </tableClass>
>                 </table>
>             </tables>
>         </matchers>
>     </strategy>
> </generator>
>
>
> Again, the same result.
>
> Finally, I tried to use AsInDatabaseStrategy, as defined in the
> documentation:
>
> <generator>
>     <!-- ... -->
>     <strategy>
>         <name>org.oddloot.db.AsInDatabaseStrategy</name>
>     </strategy>
> </generator>
>
>
> And this took me back to
>
> Account
> Server
> Serveraccount
>
> VAccount
> VServer
> VServeraccount
>
>
> Of course, all these results are pretty much usable - only not quite what
> I wanted.
>
> Am I doing something fundamentally wrong here, or just missing something?
>
> Any suggestions/hints really appreciated.
>
> Cheers,
> Carsten
>
> --
> 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.
>

-- 
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