0

JPA または hibernate アノテーションを使用して、(MySQL によると) フィールドがデータベースにある必要がある正確な型と長さを指定する方法はありますか?

例えば:

@Entity
@Table { appliesTo="test" }
public class Test implements Serializable {

    private string info;

    public void setInfo(String i) {
       info = i;
    }

    @Column { name="id", length="25" }
    public String getInfo() {
        return info;
    }
}

hibernate-maven-plugin を使用してこのクラスをリバース エンジニアリングしたいのですが、"varchar 35" などを @Column アノテーションに追加して、リバース エンジニアリングを行うときに、指定したとおりにフィールドが作成されるようにします。私が指定する長さ。

また、Java フィールド (プライベート ロング エイジなど) で「列」アノテーションを使用する場合と、ゲッター メソッド (通常は表示される場所) を使用する場合の違いは何ですか?

4

3 に答える 3

1

はいあります。列アノテーションの属性columnDefinitionは、このようなニーズに対応しています。生成されたSQLDDLをこのように詳細に制御する必要がない場合は、長さ、精度、およびスケール属性が役立ちます。

永続性アノテーションをフィールドとメソッドの両方に広げないでください。それらが一貫して配置されている限り、それは問題ありません。提供される永続性(Hibernateのように)は、注釈が配置されている場所に基づいて値を永続化するためにフィールドまたはメソッドを使用するかどうかを選択します。両方の場合、結果は未定義であり、機能しない可能性があります。

于 2012-06-25T05:40:14.690 に答える
0

ここに例があります

@Column(name = "delFlag", nullable = false, columnDefinition = "boolean default false")
private boolean delFlag;   

@Column(length = 30)
private String propertyState;
于 2012-06-25T05:52:21.423 に答える