METAGEN-4
This commit is contained in:
parent
787359a073
commit
443ae2de29
|
@ -236,15 +236,6 @@
|
||||||
<descriptor>src/main/assembly/dist.xml</descriptor>
|
<descriptor>src/main/assembly/dist.xml</descriptor>
|
||||||
</descriptors>
|
</descriptors>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>make-assembly</id>
|
|
||||||
<phase>site</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>assembly</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
@ -254,7 +245,7 @@
|
||||||
<autoVersionSubmodules>true</autoVersionSubmodules>
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
||||||
<allowTimestampedSnapshots>true</allowTimestampedSnapshots>
|
<allowTimestampedSnapshots>true</allowTimestampedSnapshots>
|
||||||
<remoteTagging>true</remoteTagging>
|
<remoteTagging>true</remoteTagging>
|
||||||
<goals>package deploy</goals>
|
<goals>package deploy javadoc:javadoc org.jboss.maven.plugins:maven-jdocbook-plugin:2.2.0:resources org.jboss.maven.plugins:maven-jdocbook-plugin:2.2.0:generate assembly:assembly</goals>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
<id>dist</id>
|
<id>dist</id>
|
||||||
<formats>
|
<formats>
|
||||||
<format>tar.gz</format>
|
<format>tar.gz</format>
|
||||||
<format>tar.bz2</format>
|
|
||||||
<format>zip</format>
|
<format>zip</format>
|
||||||
</formats>
|
</formats>
|
||||||
|
|
||||||
|
@ -34,22 +33,6 @@
|
||||||
</dependencySet>
|
</dependencySet>
|
||||||
</dependencySets>
|
</dependencySets>
|
||||||
|
|
||||||
<files>
|
|
||||||
<file>
|
|
||||||
<source>readme.txt</source>
|
|
||||||
<outputDirectory>/</outputDirectory>
|
|
||||||
<filtered>true</filtered>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<source>license.txt</source>
|
|
||||||
<outputDirectory>/</outputDirectory>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<source>issues.txt</source>
|
|
||||||
<outputDirectory>/</outputDirectory>
|
|
||||||
</file>
|
|
||||||
</files>
|
|
||||||
|
|
||||||
<fileSets>
|
<fileSets>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>target</directory>
|
<directory>target</directory>
|
||||||
|
@ -66,16 +49,17 @@
|
||||||
<directory>target/site/apidocs</directory>
|
<directory>target/site/apidocs</directory>
|
||||||
<outputDirectory>docs/api</outputDirectory>
|
<outputDirectory>docs/api</outputDirectory>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
|
<fileSet>
|
||||||
|
<directory>target/docbook/publish</directory>
|
||||||
|
<outputDirectory>docs/reference</outputDirectory>
|
||||||
|
</fileSet>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>.</directory>
|
<directory>.</directory>
|
||||||
<outputDirectory/>
|
<outputDirectory/>
|
||||||
<useDefaultExcludes>true</useDefaultExcludes>
|
<useDefaultExcludes>true</useDefaultExcludes>
|
||||||
<excludes>
|
<excludes>
|
||||||
<exclude>*.txt</exclude>
|
|
||||||
<exclude>**/target/**</exclude>
|
<exclude>**/target/**</exclude>
|
||||||
<exclude>*.iml</exclude>
|
|
||||||
</excludes>
|
</excludes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
</fileSets>
|
</fileSets>
|
||||||
|
|
||||||
</assembly>
|
</assembly>
|
||||||
|
|
|
@ -49,51 +49,212 @@
|
||||||
<section id="whatisit" revision="1">
|
<section id="whatisit" revision="1">
|
||||||
<title>What is it about?</title>
|
<title>What is it about?</title>
|
||||||
|
|
||||||
<para>Hibernate Static Metamodel Generator is an annotation processor
|
<para>JPA 2 defines a new typesafe <classname>Criteria</classname> API
|
||||||
with the task of creating the static metamodel classes for JPA 2
|
which allows criteria queries to be constructed in a strongly-typed
|
||||||
entities. In the following I will show how to integrate the annotation
|
manner, using metamodel objects to provide type safety. This type saftey
|
||||||
processor into your build environment.</para>
|
is of course only useful for developers if the task of the metamodel
|
||||||
|
generation can be automated. Hibernate Static Metamodel Generator is an
|
||||||
|
annotation processor based on the annotation processing API defined in
|
||||||
|
<ulink url="???">JSR 269</ulink> with the task of creating the static
|
||||||
|
metamodel classes for JPA 2 entities. The following examples show a
|
||||||
|
managed JPA 2 entity, together with is metamodel class and an example
|
||||||
|
typesafe query.</para>
|
||||||
|
|
||||||
|
<example id="jpa2-entity-example">
|
||||||
|
<title>JPA 2 annotated entity</title>
|
||||||
|
|
||||||
|
<programlisting>@Entity public class Order {
|
||||||
|
@Id
|
||||||
|
Integer id;
|
||||||
|
@ManyToOne
|
||||||
|
Customer customer;
|
||||||
|
@OneToMany
|
||||||
|
Set<Item> items;
|
||||||
|
BigDecimal totalCost;
|
||||||
|
|
||||||
|
// standard setter/getter methods
|
||||||
|
...
|
||||||
|
}</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<example id="metamodel-class-example">
|
||||||
|
<title>Matching metamodel class for entity
|
||||||
|
<classname>Order</classname></title>
|
||||||
|
|
||||||
|
<programlisting>@StaticMetamodel(Order.class)
|
||||||
|
public class Order_ {
|
||||||
|
public static volatile SingularAttribute<Order, Integer> id;
|
||||||
|
public static volatile SingularAttribute<Order, Customer> customer;
|
||||||
|
public static volatile SetAttribute<Order, Item> items;
|
||||||
|
public static volatile SingularAttribute<Order, BigDecimal> totalCost;
|
||||||
|
}</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<example id="criteria-example" label="">
|
||||||
|
<title>Example of typesafe query using the metamodel class
|
||||||
|
<classname>Order_</classname> </title>
|
||||||
|
|
||||||
|
<programlisting>CriteriaBuilder cb = entityManager.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<Order> cq = cb.createQuery(Order.class);
|
||||||
|
SetJoin<Order, Item> itemNode = cq.from(Order.class).join(Order_.orderItems);
|
||||||
|
cq.where( cb.equal(itemNode.get(Item_.id), 5 ) ).distinct(true);
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="installation" revision="1">
|
<section>
|
||||||
<title>Installation</title>
|
<title>Canonical Metamodel</title>
|
||||||
|
|
||||||
<para><section revision="1">
|
<para>The structure of the metamodel classes is described in the <ulink
|
||||||
<title>Prerequisites</title>
|
url="http://jcp.org/en/jsr/detail?id=317">JPA 2 specification</ulink>
|
||||||
|
and its definition is included for completeness in the following
|
||||||
|
paragraphs . Feel free to skip ahead to <xref linkend="chapter-usage" />
|
||||||
|
if you are not interested into the gory details. </para>
|
||||||
|
|
||||||
<para />
|
<para>The annotation processor produces for every managed class in the
|
||||||
</section></para>
|
persistence unit a metamodel class based on these rules:</para>
|
||||||
|
|
||||||
|
<para><itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>For each managed class <classname>X</classname> in package
|
||||||
|
p, a metamodel class <classname>X_</classname> in package p is
|
||||||
|
created.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The name of the metamodel class is derived from the name of
|
||||||
|
the managed class by appending "_" to the name of the managed
|
||||||
|
class.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The metamodel class <classname>X_</classname> must be
|
||||||
|
annotated with the
|
||||||
|
<classname>javax.persistence.StaticMetamodel</classname>
|
||||||
|
annotation.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>If class <classname>X</classname> extends another class
|
||||||
|
<classname>S</classname>, where <classname>S</classname> is the
|
||||||
|
most derived managed class (i.e., entity or mapped superclass)
|
||||||
|
extended by <classname>X</classname>, then class
|
||||||
|
<classname>X_</classname> must extend class
|
||||||
|
<classname>S_</classname>, where <classname>S_</classname> is the
|
||||||
|
metamodel class created for <classname>S</classname>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>For every persistent non-collection-valued attribute y
|
||||||
|
declared by class <classname>X</classname>, where the type of y is
|
||||||
|
<classname>Y</classname>, the metamodel class must contain a
|
||||||
|
declaration as follows: <programlisting>public static volatile SingularAttribute<X, Y> y;</programlisting></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>For every persistent collection-valued attribute z declared
|
||||||
|
by class <classname>X</classname>, where the element type of z is
|
||||||
|
<classname>Z</classname>, the metamodel class must contain a
|
||||||
|
declaration as follows:<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>if the collection type of z is java.util.Collection,
|
||||||
|
then <programlisting>public static volatile CollectionAttribute<X, Z> z;</programlisting></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>if the collection type of z is java.util.Set, then
|
||||||
|
<programlisting>public static volatile SetAttribute<X, Z> z;</programlisting></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>if the collection type of z is java.util.List, then
|
||||||
|
<programlisting>public static volatile ListAttribute<X, Z> z;</programlisting></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>if the collection type of z is java.util.Map, then
|
||||||
|
<programlisting>public static volatile MapAttribute<X, K, Z> z;</programlisting>
|
||||||
|
where K is the type of the key of the map in class X</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist></para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>Import statements must be included for the needed
|
||||||
|
<classname>javax.persistence.metamodel</classname> types as appropriate
|
||||||
|
and all classes <classname>X</classname>, <classname>Y</classname>,
|
||||||
|
<classname>Z</classname>, and <classname>K</classname>.</para>
|
||||||
</section>
|
</section>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
<chapter>
|
<chapter id="chapter-usage">
|
||||||
<title>Usage</title>
|
<title>Usage</title>
|
||||||
|
|
||||||
|
<para> The jar file for the annotation processor can be found in the
|
||||||
|
<ulink url="http://repository.jboss.com/">JBoss Maven repository</ulink>
|
||||||
|
under:</para>
|
||||||
|
|
||||||
|
<example id="maven-dependency" label="">
|
||||||
|
<title>Maven dependency for Hibernate Static Metamodel Generator</title>
|
||||||
|
|
||||||
|
<programlisting><dependency>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-jpamodelgen</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency></programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>Alternatively, a full distribution package can be downloaded from
|
||||||
|
<ulink url="http://sourceforge.net/">SourceForge</ulink>.</para>
|
||||||
|
|
||||||
<para>In most cases the annotation processor will automatically run
|
<para>In most cases the annotation processor will automatically run
|
||||||
provided the annotation processor jar is on the classpath. This happens
|
provided a JDK version 6i used and the jar file is added to the classpath.
|
||||||
due to Java's Service Provider contract and the fact the the Hibernate
|
This happens due to <ulink
|
||||||
Static Metamodel Generator jar files contains the file
|
url="http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#Service%20Provider">Java's
|
||||||
|
Service Provider</ulink> contract and the fact the the Hibernate Static
|
||||||
|
Metamodel Generator jar files contains the file
|
||||||
<classname>javax.annotation.processing.Processor</classname> in the
|
<classname>javax.annotation.processing.Processor</classname> in the
|
||||||
<filename>META-INF/services</filename> listing
|
<filename>META-INF/services</filename> directory. The fully qualified name
|
||||||
<classname>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</classname>
|
of the processor itself is:
|
||||||
as annotation processor.</para>
|
<classname>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</classname>.
|
||||||
|
<note>
|
||||||
|
<para>The use of a Java 6 compiler is a prerequisite.</para>
|
||||||
|
</note></para>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>Usage from the command line</title>
|
<title>Usage from the command line</title>
|
||||||
|
|
||||||
<para><section revision="1">
|
<para><section id="usage-ant" revision="1">
|
||||||
<title>Usage with Ant</title>
|
<title>Usage with Ant</title>
|
||||||
</section>As mentioned before, the annotation processor will run
|
</section>As mentioned before, the annotation processor will run
|
||||||
automatically in a Java 6 environment. In case you want configure the
|
automatically each time the Java compiler is called - provided the jar
|
||||||
processor explicitly or disable it you can use the compilerarg option of
|
file is on the classpath. Somtimes it is, however, useful to control the
|
||||||
the Javac Task. The supported command javac line options are listed
|
annotation processing in more detail, for example if you exclusively
|
||||||
here. <section revision="1">
|
want to run the processor without compiling any other source files.
|
||||||
|
<xref linkend="javac-task-example" /> shows how the <ulink
|
||||||
|
url="http://ant.apache.org/manual/CoreTasks/javac.html">Ant Javac
|
||||||
|
Task</ulink> can be configured to just run annotation
|
||||||
|
processing.<example id="javac-task-example">
|
||||||
|
<title>Ant Javac Task configuration </title>
|
||||||
|
|
||||||
|
<programlisting><javac srcdir="${src.dir}"
|
||||||
|
destdir="${target.dir}"
|
||||||
|
failonerror="false"
|
||||||
|
fork="true"
|
||||||
|
classpath="${classpath}">
|
||||||
|
<emphasis role="bold"><compilerarg value="-proc:only"/></emphasis>
|
||||||
|
</javac></programlisting>
|
||||||
|
</example>The option <emphasis>-proc:only</emphasis> instructs the
|
||||||
|
compiler to just run the annotation processing. You can also completely
|
||||||
|
disable processing by specifying <emphasis>-proc:none</emphasis>.<tip>
|
||||||
|
<para>Run <literal>'javac -help'</literal> to see which other
|
||||||
|
annotation processor relevant options can be specified.</para>
|
||||||
|
</tip><section revision="1">
|
||||||
<title>Usage with Maven</title>
|
<title>Usage with Maven</title>
|
||||||
</section>There are several ways of running the annotation processor
|
</section>There are several ways of running the annotation processor
|
||||||
as part of a Maven build. It will automatically run if you are using a
|
as part of a Maven build. Again, it will automatically run if you are
|
||||||
JDK 6 compiler and the annotation processor jar is on the classpath. In
|
using a JDK 6 compiler and the annotation processor jar is on the
|
||||||
case you have more than one annotation processors on your classpath you
|
classpath. In case you have more than one annotation processors on your
|
||||||
can explicitly pass the processor option to the compiler plugin:</para>
|
classpath you can explicitly pass the processor option to the compiler
|
||||||
|
plugin:</para>
|
||||||
|
|
||||||
<para><example>
|
<para><example>
|
||||||
<title>Maven compiler plugin configuration - direct
|
<title>Maven compiler plugin configuration - direct
|
||||||
|
@ -105,7 +266,7 @@
|
||||||
<source>1.6</source>
|
<source>1.6</source>
|
||||||
<target>1.6</target>
|
<target>1.6</target>
|
||||||
<compilerArguments>
|
<compilerArguments>
|
||||||
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
|
<emphasis role="bold"><processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor></emphasis>
|
||||||
</compilerArguments>
|
</compilerArguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin></programlisting>
|
</plugin></programlisting>
|
||||||
|
@ -113,11 +274,15 @@
|
||||||
|
|
||||||
<para>The maven-compiler-plugin approach has the disadvantage that the
|
<para>The maven-compiler-plugin approach has the disadvantage that the
|
||||||
maven compiler plugin does currently not allow to specify multiple
|
maven compiler plugin does currently not allow to specify multiple
|
||||||
compiler arguments (MCOMPILER-62) and that messages from the Messenger
|
compiler arguments (<ulink
|
||||||
API are suppressed (MCOMPILER-66). A better approach is to disable
|
url="http://jira.codehaus.org/browse/MCOMPILER-62">MCOMPILER-62</ulink>)
|
||||||
annotation processing for the compiler plugin:</para>
|
and that messages from the Messenger API are suppressed (<ulink
|
||||||
|
url="http://jira.codehaus.org/browse/MCOMPILER-66">MCOMPILER-66</ulink>).
|
||||||
|
A better approach is to disable annotation processing for the compiler
|
||||||
|
plugin as seen in <xref
|
||||||
|
linkend="disable-processing-maven-compiler-plugin" />.</para>
|
||||||
|
|
||||||
<example>
|
<example id="disable-processing-maven-compiler-plugin">
|
||||||
<title>Maven compiler plugin configuration - indirect
|
<title>Maven compiler plugin configuration - indirect
|
||||||
execution</title>
|
execution</title>
|
||||||
|
|
||||||
|
@ -126,16 +291,22 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.6</source>
|
<source>1.6</source>
|
||||||
<target>1.6</target>
|
<target>1.6</target>
|
||||||
<compilerArgument>-proc:none</compilerArgument>
|
<emphasis role="bold"><compilerArgument>-proc:none</compilerArgument></emphasis>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin></programlisting>
|
</plugin></programlisting>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para>and use the maven-annotation-plugin for annotation processing (you
|
<para>Once disabled, the <ulink
|
||||||
will need the following additional maven repositories -
|
url="http://code.google.com/p/maven-annotation-plugin/">maven-annotation-plugin</ulink>
|
||||||
maven-annotation-plugin and jfrog):</para>
|
for annotation processing (you will need the following additional maven
|
||||||
|
repositories - <ulink
|
||||||
|
url="http://maven-annotation-plugin.googlecode.com/svn/trunk/mavenrepo">maven-annotation-plugin</ulink>
|
||||||
|
and <ulink
|
||||||
|
url="http://www.jfrog.org/artifactory/plugins-releases">jfrog</ulink>)
|
||||||
|
can be used. The configuration can be seen in <xref
|
||||||
|
linkend="maven-processor-plugin" />.</para>
|
||||||
|
|
||||||
<example>
|
<example id="maven-processor-plugin">
|
||||||
<title>Maven compiler plugin configuration with
|
<title>Maven compiler plugin configuration with
|
||||||
maven-annotation-plugin</title>
|
maven-annotation-plugin</title>
|
||||||
|
|
||||||
|
@ -181,9 +352,19 @@
|
||||||
<section>
|
<section>
|
||||||
<title>Usage within the IDE</title>
|
<title>Usage within the IDE</title>
|
||||||
|
|
||||||
|
<para>Of course you also want to have annotation processing available in
|
||||||
|
your favorite IDE. The following paragraphs and screenshots show you how
|
||||||
|
to enable the Hibernate Static Metamodel Generator within your
|
||||||
|
IDE.</para>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>Idea</title>
|
<title>Idea</title>
|
||||||
|
|
||||||
|
<para>Intellij Idea contains from version 9.x onwards a specifc
|
||||||
|
configuration section for annotation processing under the project
|
||||||
|
settings window. The screenshots show you how to configure the
|
||||||
|
Hibernate Static Metamodel Generator.</para>
|
||||||
|
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject role="fo">
|
<imageobject role="fo">
|
||||||
<imagedata align="center" contentdepth="" contentwidth="150mm"
|
<imagedata align="center" contentdepth="" contentwidth="150mm"
|
||||||
|
@ -196,13 +377,18 @@
|
||||||
scalefit="1" />
|
scalefit="1" />
|
||||||
</imageobject>
|
</imageobject>
|
||||||
</mediaobject>
|
</mediaobject>
|
||||||
|
|
||||||
<para></para>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>Eclipse</title>
|
<title>Eclipse</title>
|
||||||
|
|
||||||
|
<para>In Eclipse, from the Galileo release onwards, exists an
|
||||||
|
additional configuration section under Java Compiler. There you can
|
||||||
|
configure all kinds of aspects of annotation processing. Just check
|
||||||
|
the "Enable annotation processing" option, configure the directory for
|
||||||
|
the generated sources and finally add the Hibernate Static Metamodel
|
||||||
|
Generator and JPA 2 jar files to the factory path.</para>
|
||||||
|
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject role="fo">
|
<imageobject role="fo">
|
||||||
<imagedata align="center" contentdepth="" contentwidth="150mm"
|
<imagedata align="center" contentdepth="" contentwidth="150mm"
|
||||||
|
@ -221,22 +407,15 @@
|
||||||
<section>
|
<section>
|
||||||
<title>NetBeans</title>
|
<title>NetBeans</title>
|
||||||
|
|
||||||
<para>Of course you also want to have annotation processing available
|
<para>TODO</para>
|
||||||
in your favorite IDE. In Eclipse (at least since the latest Galileo
|
|
||||||
release) exists an additional configuration section under Java
|
|
||||||
Compiler where you can configure all kinds of aspects of annotation
|
|
||||||
processing. Just check the "Enable annotation processing" option,
|
|
||||||
configure the directory for the generated sources and finally add the
|
|
||||||
Hibernate Static Metamodel Generator and JPA 2 jar files to the
|
|
||||||
factory path.</para>
|
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>Options</title>
|
<title>Processor specific options</title>
|
||||||
|
|
||||||
<para>The annotaton processor accepts a series of custom properties
|
<para>The Hibernate Static Metamodel Generator accepts a series of
|
||||||
which can be passed to the processor execution in the format
|
custom options which can be passed to the processor in the format
|
||||||
<literal>-A[property]=[value]</literal>. The supported properties
|
<literal>-A[property]=[value]</literal>. The supported properties
|
||||||
are:<table>
|
are:<table>
|
||||||
<title>Annotation processor options (passed via
|
<title>Annotation processor options (passed via
|
||||||
|
@ -245,9 +424,10 @@
|
||||||
<tgroup cols="2">
|
<tgroup cols="2">
|
||||||
<tbody>
|
<tbody>
|
||||||
<row>
|
<row>
|
||||||
<entry>Option name</entry>
|
<entry><emphasis role="bold">Option name</emphasis></entry>
|
||||||
|
|
||||||
<entry>Option value and usage</entry>
|
<entry><emphasis role="bold">Option value and
|
||||||
|
usage</emphasis></entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
|
@ -280,4 +460,15 @@
|
||||||
</table></para>
|
</table></para>
|
||||||
</section>
|
</section>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
|
<appendix>
|
||||||
|
<title>Further information</title>
|
||||||
|
|
||||||
|
<para>For further usage question or problems consult the <ulink
|
||||||
|
url="https://forum.hibernate.org/viewforum.php?f=9">Hibernate
|
||||||
|
Forum</ulink>. For bug reports use the <ulink
|
||||||
|
url="http://opensource.atlassian.com/projects/hibernate/browse/METAGEN"
|
||||||
|
userlevel="">METAGEN</ulink> project in the Hibernate Jira instance.
|
||||||
|
Feedback is always welcome.</para>
|
||||||
|
</appendix>
|
||||||
</book>
|
</book>
|
||||||
|
|
Loading…
Reference in New Issue