And "J" would be for jOOQ? :-) The message has been well received. I understand the usefulness of a prefix generating strategy. I'm also aware of QueryDSL's adding a "Q" to some of its generated types (I'm curious about other jOOQ <-> QueryDSL comparisons, should you like to share them on this list...)
I'll think about your "fix". I still prefer a generic solution, but I can see how yours eases some pain, immediately. Cheers Lukas 2013/3/28 Peter Ertl <[email protected]>: > Hi Lukas, > > while not forgetting from my previous posts that a customizable strategy > would be the ultimate(tm) solution I would still vote for additionally > adding a simple out-of-the-box naming strategy (explained below) into > jooq-codegen. > > Let me explain the reason why: > > - consider you use maven > - also consider that you mix jOOQ with something like *brrr* hibernate / > eclipselink / [any orm] > > -> chances are very, very high that the class names of the entity classes > (e.g. Customer.java -> mapped to @Table "customer") will clash with the jOOQ > generated class 'Customer' when using the default strategy. This is very(!) > annoying and in order to avoid this you need a precompiled and maven > repository deployed module dependency with a custom naming strategy. > > This is required since compilation is not available in the > "generate-sources" lifecycle of maven. > > We currently use querydsl which prefixes all classes with 'Q'. We find that > quite pleasing since we can easily find all generated classes in the type > viewer of the IDE and practically no name clashes happen. Having a prefix is > simple but effective. > > So I would suggest to bundle a very simple naming strategy in jooq-codegen > which would required very little space and maintenance but could probably > make like 95% of all people with name clashes happy. There will still be > people whining ("i want another prefix", "why not a suffix?" and such) but > still a high percentage of people would just appreciate not having this darn > name clashes. And then you can still have custom naming strategy. > > I think avoiding name clashes overrules personal taste. > > This would also make migration / integration of jOOQ into s$$t like > hibernate / orm much sexier and in the end make adaption of jOOQ easier :-) > > ----------------------- > please add me to 'jooq-codegen' :-) > ----------------------- > > package org.jooq.util; > > /** > * variant of the default naming strategy {@DefaultGeneratorStrategy} adding > * the prefix 'J' to generated class names (e.g. to avoid name clashes > * with existing JPA entities and such) > */ > public class JPrefixGeneratorStrategy extends DefaultGeneratorStrategy { > > @Override > public String getJavaClassName(final Definition definition, final Mode mode) > { > return 'J' + super.getJavaClassName(definition, mode); > } > } > > ----------------------------- > > enabling it would be a simple matter of adding > > <name>org.jooq.util.JPrefixGeneratorStrategy</name> > > to pom.xml. > > this class means practically zero maintenance effort but great relief for > maven / hibernate users... > > > Best regards > Peter > > -- > 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/groups/opt_out. > > -- 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/groups/opt_out.
