2010-08-23 32 views

回答

5

length屬性由DDL生成工具用於生成具有相應列大小的腳本。就這樣。

因此,不,Hibernate不會截斷數據,它只會嘗試寫出您告訴他寫入的內容,如果數據長於給定列中的內容,插入或更新語句將失敗。

+0

酷。我正在尋找一些方法來防止插入數據超過限制,但插入修剪的內容。在hibernate對象的setter方法中輸入子串是一種方法。如果這沒問題,請參考。 – Nayn 2010-08-24 08:50:16

+0

@Nayn:在二傳手中修剪會起作用,可能是最好的選擇。 – 2010-08-24 16:15:14

3

20.1。自動生成模式

可以通過Hibernate實用程序從映射文件生成DDL。生成的模式包括實體和集合表的參照完整性約束,主鍵和外鍵。表和序列也爲映射的標識符生成器創建。

使用此工具時,必須通過hibernate.dialect屬性指定SQL方言,因爲DDL非常特定於供應商。

首先,您必須自定義映射文件以改進生成的模式。下一節介紹模式定製。

20.1.1。定製模式

許多Hibernate映射元素定義了可選屬性,名稱爲length,precision和scale。您可以使用此屬性設置列的長度,精度和比例。

<property name="zip" length="5"/> 
<property name="balance" precision="12" scale="2"/> 

來自:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/toolsetguide.html