Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让hibernate自动截断数据以适应列,而不是引发异常_Hibernate - Fatal编程技术网

让hibernate自动截断数据以适应列,而不是引发异常

让hibernate自动截断数据以适应列,而不是引发异常,hibernate,Hibernate,我在Hibernate实体中有一系列基于字符串的属性,默认情况下Hibernate将这些属性映射到VARCHAR255。这对于某些值来说不够长,但我知道我可以使用 @Column (length) 但有时我会遇到这样的情况,传递给set*Attribute*方法的数据比我定义的长度长,在这种情况下,我只希望hibernate本质上执行一个s.substring0,length,但它只是抛出一个异常 有没有办法让它自动对数据进行子串匹配。如果我不能,我必须为每个set方法添加一个长度检查,如果我

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

@Column (length)
但有时我会遇到这样的情况,传递给set*Attribute*方法的数据比我定义的长度长,在这种情况下,我只希望hibernate本质上执行一个s.substring0,length,但它只是抛出一个异常


有没有办法让它自动对数据进行子串匹配。如果我不能,我必须为每个set方法添加一个长度检查,如果我更改了数据库中列的长度,则更新代码。这不是一个很头痛的问题,但是如果我能避免的话,那就太好了

实现Hibernate用户类型和

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

可能重复:@Jesse Webb是的,你是对的,这是同一个问题,但我认为我的问题更清楚,如果能够提供一个使用Hibernate拦截器的实际解决方案,那就太好了。