2014-02-16 56 views
0

我回到這裏琢磨#1的區別是在和Hibernate的hbm.xml文件中中值之間的東西。休眠 - <property>值與<column>值

我解釋自己好一點:

<property column="LOGIN_NAME" generated="insert" lazy="false" name="loginName" not-null="true" type="java.lang.String" unique="true"> 
    <column length="128" name="LOGIN_NAME" not-null="true" sql-type="VARCHAR(128)" unique="true"/> 
</property> 

在上面的例子中,我重複某些價值觀,如not-nulluniquecolumn-name兩個<property><column>。我的問題是,有什麼區別?哪些必須/應該被定義?

回答

1

沒有要求具有相同表示的兩個標籤。而不是寫你上面寫的方式是寫它的方式。

<property column="LOGIN_NAME" generated="insert" lazy="false" name="loginName" not-null="true" type="java.lang.String" unique="true" sql-type="VARCHAR(128)" length="128"> 
</property> 

列標記是屬性標記本身的一部分。你只需要定義一次。它不需要一次又一次地添加相同的屬性。

+0

謝謝!我非常感謝答案! – kazbeel

+0

利用你的知識...這裏是另一個快速問題:) 是否值得定義sql類型?這是不是將「字段」綁定到特定的數據庫?我的意思是,'BIT'類型例如是MySQL專用的... – kazbeel

+1

這取決於你的用例。通常我們不使用sql-type來定義列類型。 – Abhishek