我在hibernate映射文件中读到表列的'length'属性是可选的。如果长度超过列长度,它是否在插入数据库时截断数据? 谢谢 Nayn
答案 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