2010-08-23 72 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