I am specifically looking for JPA code generation technique
First, what are all the project could generate JPA compliant code? (Eg. HibernateTools)
Second, I would also like to customize the code generation utility, as it has to compliant to our corporate standards.
If not, what are all the framework available to generate java code using reflection? so I can write from scratch.
Note: I used eclipse to generate JPA code and refactor it repeatedly to make it compliant.
I also have difficulties understanding the question, but I'll try to rephrase:
When you say "JPA java code generation", I understand generating JPA annotated model classes from a supplied DB connection. Most frameworks often refer to this as reverse engineering.
Now you have two questions:
To answer to the first question:
I really like the Netbeans code generation, especially if you show the results to someone not familiar with JPA.
At the level of customization I can only share the experience I had with Hibernate Tools. Especially for reproducible results, try to use the ant-based tasks. You can easily add some targets to your build and code generation can be done at two levels:
With the templates you should be able to cover most of the corporate standards. Look into the pojo
directory of the hibernate-tools package. The easiest way to customize the code generation is to copy and adapt the templates and have them put before the hibernate-tools.jar in the ant task used to create the pojos.
As already pointed out in another comment, it might be difficult to modify the generated code afterwards. I hope the following tips can help you:
@MappedSuperclass
for classes which you may want to adapt in a manual step.