は(だけでなく、以前のバージョンでも動作しますが、私がいることをテストしていませんでした)のために、あなたは彼らが持っているだろう場合はコンストラクタを作成スキップするhibernatetoolコード生成をカスタマイズすることができます以下のファイルを作成することによって、255個の以上のパラメータ、:
$ {休止状態-カスト-SRC} /pojo/PojoConstructors.ftl
<#-- /** default constructor */ -->
public ${pojo.getDeclarationName()}() {
}
<#if pojo.needsMinimalConstructor() && pojo.getPropertiesForMinimalConstructor().size() lte 255> <#-- /** minimal constructor */ -->
public ${pojo.getDeclarationName()}(${c2j.asParameterList(pojo.getPropertyClosureForMinimalConstructor(), jdk5, pojo)}) {
<#if pojo.isSubclass() && !pojo.getPropertyClosureForSuperclassMinimalConstructor().isEmpty() >
super(${c2j.asArgumentList(pojo.getPropertyClosureForSuperclassMinimalConstructor())});
</#if>
<#foreach field in pojo.getPropertiesForMinimalConstructor()>
this.${field.name} = ${field.name};
</#foreach>
}
</#if>
<#if pojo.needsFullConstructor() && pojo.getPropertiesForFullConstructor().size() lte 255>
<#-- /** full constructor */ -->
public ${pojo.getDeclarationName()}(${c2j.asParameterList(pojo.getPropertyClosureForFullConstructor(), jdk5, pojo)}) {
<#if pojo.isSubclass() && !pojo.getPropertyClosureForSuperclassFullConstructor().isEmpty()>
super(${c2j.asArgumentList(pojo.getPropertyClosureForSuperclassFullConstructor())});
</#if>
<#foreach field in pojo.getPropertiesForFullConstructor()>
this.${field.name} = ${field.name};
</#foreach>
}
</#if>
これは休止状態 - tools.jarの中PojoConstructors.ftlを上書きします。
ビルドにAntを使用している場合は、${hibernate-cust-src}
がhibernate-toolsタスクのクラスパスにあることを確認する必要があります。
<path id="toolslib">
<pathelement location="${hibernate-cust-src}"/>
... [other locations for hibernate-tools and dependencies]
</path>
<taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="toolslib"/>
注意、私見それはあなたがメソッドまたはコンストラクタのために255を超えるpararmetersを定義することはできませんJavaでは
{-カスト-SRC休止} - 私は論理的に独立したエンティティとしてグループ化することができフィールドの束を取って、それらをラベル付け私のhbm内のコンポーネントとして。それはまだ少しハッキリしているように感じますが、それはちょうど私が255未満になるようにJavaクラスメソッドにパラメータの数を減らすための簡単な方法です。 – WhyGeeEx