<property name="name" type="java.lang.String">
<column name="NAME" length="40" not-null="true" />
</property>
比如我在數據庫里定義name的長度是50,在映射文件里面寫的40,那最后這個length是按照哪個來算的,並且這個length的限制是怎么工作的呢?
Hibernate配置文件中,有一個hibernate.hbm2ddl.auto選項。
當值為create時,會先刪除數據表,然后重新創建。
當值為update時,會更新數據表結構,數據還存在。
也就是說上面兩種情況,會按照映射文件中的length來設置。
但是,當值為validate時,就會檢查映射文件和數據庫表設計,當不一致時,就會拋異常。
順便說一下,開發人員的習慣是先設計數據庫,然后再進行映射。因此,length基本上不用配置。
<property name="" type="" column="" /> 就夠用了。
除非,你要先設計Java POJO類,然后由類導出數據庫結構,才需要填上length、not-null這些精細控制。但是,這種開發習慣基本上沒人用,做個練習還是有價值的。