xsd-Schema から Java クラスを生成する Maven プロジェクトをセットアップしました。最初に maven-hyperjaxb3-plugin を構成し (以下の pom.xml スニペットを参照)、エンティティーにデフォルトの JPA2 アノテーションを配置できるようにします。この注釈の 1 つは @java.persitence.Table(name = "table_name") です。スキーマの名前も入れられるように、外部グローバル バインディングを介してこの注釈を拡張したいと考えています。@java.persitence.Table(name = "table_name", schema = "schema_name") を取得するようにします。これを行う方法はありますか?テーブルの名前にプレフィックスをグローバルに配置するのはどうですか: @java.persitence.Table(name = "prefix_table_name")、それを行う方法はありますか?
よろしくエルゼン
pom.xml スニペット
<groupId>org.jvnet.hyperjaxb3</groupId>
<artifactId>maven-hyperjaxb3-plugin</artifactId>
<version>0.6.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<variant>jpa2</variant>
<extension>true</extension>
<roundtripTestClassName>EKMSEnvelopeRoundtripTest</roundtripTestClassName>
<args>
<arg>-Xinheritance</arg>
<arg>-XtoString</arg>
<arg>-Xannotate</arg>
</args>
<schemaExcludes>
<exclude>ekvaattributes.xsd</exclude>
</schemaExcludes>
</configuration>
bindings-xjc.xjb スニペット
<jaxb:globalBindings localScoping="toplevel">
<!-- JPA-entities must be serializable -->
<xjc:serializable />
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="schema.xsd"
node="/xs:schema">
<annox:annotate>
<!-- my attempt -->
<annox:annotate annox:class="javax.persistence.Table"
schema="schema_name">
</annox:annotate>
</annox:annotate>
<hj:persistence>
<hj:default-generated-id name="Hjid">
<orm:generated-value strategy="IDENTITY" />
</hj:default-generated-id>
</hj:persistence>
</jaxb:bindings>