0

eclipse juno の Hiberate Tool プラグインを使用して、DB テーブルをマッピングする Java Bean を生成しています

Java ファイルを作成します (例):

@Entity
@Table(name = "ACTIVITIES")
public class Activities implements java.io.Serializable {

    private ActivitiesId id;
    private String title;

    @EmbeddedId
    @AttributeOverrides({
        @AttributeOverride(name = "id", column = @Column(name = "id", nullable = false)),
        @AttributeOverride(name = "codiceCreatore", column = @Column(name = "codice_creatore", nullable = false)) 
    })
    public SynchActivitiesDTOId getId() {
        return this.id;
    }

    public void setId(SynchActivitiesDTOId id) {
        this.id = id;
    }

    @Column(name = "title", nullable = false)
    public String getTitle() {
        return this.title;
    }

    public void setTitolo(String title) {
        this.title = title;
    }

}

属性または get メソッドにも @NotNull アノテーションを書きたいと思います。

@Entity
@Table(name = "ACTIVITIES")
public class Activities implements java.io.Serializable {

    @NotNull
    private ActivitiesId id;
    @NotNull
    private String title;

    ...

}

Ejb3PropertyGetAnnotation.ftl (C:\Program Files\eclipse\plugins\org.hibernate.eclipse.libs_3.4.0.v20120611-2017-H93-Final\lib\tools\hibernate-tools.jar\pojo 内) を編集してみました。

<#if !property.optional>
    @${pojo.importType("org.hibernate.validator.NotNull")}
</#if>

ただし、Activities.java には変更はありません。

どうすればいいですか?

前もって感謝します

編集: C:\Program Files\eclipse\plugins\org.hibernate.eclipse.libs_3.4.0.v20120611-2017-H93-Final\lib\tools\hibernate-tools.jar\pojo\PojoFields を変更しようとしました

<#foreach field in pojo.getAllPropertiesIterator()><#if pojo.getMetaAttribAsBool(field, "gen-property", true)> <#if pojo.hasMetaAttribute(field, "field-description")>    /**
     ${pojo.getFieldJavaDoc(field, 0)}
     */
 </#if>    ${pojo.getFieldModifiers(field)} ${pojo.getJavaTypeName(field, jdk5)} ${field.name}<#if pojo.hasFieldInitializor(field, jdk5)> = ${pojo.getFieldInitialization(field, jdk5)}</#if>;
</#if>
+ <#if !field.optional>@${pojo.importType("org.hibernate.validator.NotNull")}</#if>
</#foreach>

しかし、何も変わりません。

4

1 に答える 1

0

休止状態のリバース エンジニアリング xml を使用して、(非常に実用的な) 微調整のアプローチを取ることができます。Eclipse 休止状態ツールでは、1 つを指定できます。

たとえば、テーブルの場合、id という名前の列に次のメタ属性を含めます。

<hibernate-reverse-engineering>
    <table-filter package="my.package" match-name="ACTIVITIES" />
    <table name="ACTIVITIES">
        <meta attribute="extra-import">javax.validation.constraints.NotNull</meta>
        <column name="titolo">
            <meta attribute="scope-field">@NotNull private</meta>
        </column>
    </table>
</hibernate-reverse-engineering>

フィールドは、「scope-field」属性に指定した修飾子でスコープされます。そこで、必要な追加修飾子を微調整します。この例では、@NotNull 修飾子を追加するとともに、プライベートとしてマークします。追加のインポートについても、上記で使用されているメタ属性を参照してください。

メタ属性の完全なリストについては、このリンクを参照してください

HTH。

于 2013-03-11T10:48:27.630 に答える