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