2012-06-25 28 views
0

有什麼辦法可以使用JPA或hibernate註釋來指定確切的類型和長度(根據MySQL)該字段應該在數據庫中?如何使用JPA 2和HBN maven插件創建適用於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; 
    } 
} 

我想使用休眠,Maven的插件反向工程這一類,我想補充「VARCHAR 35」或東西@Column批註,這樣,當我做了反向工程,這些字段是按照我指定的長度和我指定的長度創建的。

此外,在java字段上使用「Column」註釋(例如私人長期)與getter方法(我通常在哪裏看到它)之間有什麼區別?

回答

1

是的。 Column註釋中的屬性columnDefinition有這樣的需求。如果不需要對生成的SQL DDL進行如此詳細的控制 - 長度,精度和比例屬性可能很有用。

您不應該將持久性註釋傳播到字段和方法。只要他們一貫地放置,它會沒事的。提供的持久性(如Hibernate)選擇它是否使用字段或方法來將值保存到註釋所在的位置。如果他們在兩者中,結果是不確定的並且不太可能工作。

+0

是什麼在@column註釋指定長度,VS相同的註釋內的columnDefinition提供可變的長度之間的差異? –

0

下面是示例

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

@Column(length = 30) 
private String propertyState; 
相關問題