什么是';长度';hibernate映射文件中的属性do

什么是';长度';hibernate映射文件中的属性do,hibernate,Hibernate,我在hibernate映射文件中读到表列的“length”属性是可选的。如果长度超过列长度,它是否会在插入数据库时截断数据? 谢谢 NaynDDL生成工具使用length属性生成具有相应列大小的脚本。就这些 因此,不,Hibernate不会截断数据,它只会尝试编写您告诉他要编写的内容,如果数据长度超过给定列的长度,insert或update语句将失败。

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

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


因此,不,Hibernate不会截断数据,它只会尝试编写您告诉他要编写的内容,如果数据长度超过给定列的长度,insert或update语句将失败。

<20.1。自动模式生成

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

使用此工具时,必须通过hibernate.dial属性指定SQL方言,因为DDL是高度特定于供应商的

首先,必须自定义映射文件以改进生成的模式。下一节将介绍模式定制

20.1.1。自定义模式

许多Hibernate映射元素定义了名为length、precision和scale的可选属性。可以使用此属性设置列的长度、精度和比例

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


发件人:

酷。我一直在寻找一些方法,以防数据长度超过限制,而不是插入修剪过的内容时插入失败。在hibernate对象的setter方法中对子字符串输入是一种方法。如果可以的话,请发表意见。@Nayn:在setter中修剪会很有效,可能是最好的选择。