Metamodel generator (mmg) JPA 2.0 provides an utility to generate canonical metamodel for each persistent domain entity. This brief note describes how to generate these canonical metamodel classes. The canonical metamodel classes are generated during compilation of persistent domain entity classes. The generation process depends on Annotation Processing facility available in JDK6. Naturally, this process *only* works if the persistent domain entity classes are compiled with a JDK6 compiler. Effectively, the process appears to be normal compilation process with a specialized Annotation Processor $ javac -classpath %CLASSPATH% <javac options> <mmg options> <*.java source files> Compiler Classpath ------------------ The compiler classpath must include OpenJPA libraries. mmg options ----------- These options specify the Annotation processor to be used as well as options for the processor. The only mandatory option is -processor org.apache.openjpa.persistence.meta.AnnotationProcessor6 The other options qualify the Annotation processor itself and specified with -A<option>=<value> syntax -Alog log level. Permissible values are TRACE, INFO and WARN. Default is INFO. -Aout the directory location of the generated canonical model source output files. Default is the current directory. -Asource compatibility level of the generated canonical model source code. Permissible values are 5 and 6. Default is 6. -Aheader flags if a header is created for the generated source code. Permissible values are true and false. Default is true.