获取hibernate以自动截断数据以适应列而不是抛出异常

时间:2012-02-09 14:27:49

标签: hibernate

我在Hibernate实体中有一系列基于String的属性,默认情况下Hibernate将这些属性映射到VARCHAR(255)。这对某些值来说还不够长,但我知道我可以使用

来改变它
@Column (length)

但有时我会遇到传递给set * Attribute *方法的数据比我定义的长度更长的情况,在这些情况下我只想让hibernate基本上做一个s.substring(0,length)但是相反,它只是抛出异常。

有什么方法可以让它自动将数据子串子化以适应。如果我不能,我必须为每个set方法添加长度检查,如果我更改数据库中列的长度,则更新代码。这不是一个令人头痛的问题但如果我能避免这种情况会很好。

1 个答案:

答案 0 :(得分:0)

实现Hibernate UserType和

for (... map : config.GetClassMapping())
{
    // iterate properties and set usertype to all properties with columns length set
}