hibernate映射文件中的'length'属性是做什么的

时间:2010-08-23 11:13:43

标签: hibernate

我在hibernate映射文件中读到表列的'length'属性是可选的。如果长度超过列长度,它是否在插入数据库时​​截断数据? 谢谢 Nayn

2 个答案:

答案 0 :(得分:5)

DDL生成工具使用length属性生成具有相应列大小的脚本。就这样。

所以不,Hibernate不截断数据,只会尝试编写你告诉他写的内容,如果数据长于适合给定列的数据,插入或更新语句将失败。

答案 1 :(得分:4)

20.1。自动模式生成

可以通过Hibernate实用程序从映射文件生成DDL。生成的模式包括实体和集合表的参照完整性约束,主键和外键。还为映射的标识符生成器创建表和序列。

使用此工具时,必须通过hibernate.dialect属性指定SQL Dialect,因为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