我在Hibernate实体中有一系列基于String的属性,默认情况下Hibernate将这些属性映射到VARCHAR(255)。这对某些值来说还不够长,但我知道我可以使用
来改变它@Column (length)
但有时我会遇到传递给set * Attribute *方法的数据比我定义的长度更长的情况,在这些情况下我只想让hibernate基本上做一个s.substring(0,length)但是相反,它只是抛出异常。
有什么方法可以让它自动将数据子串子化以适应。如果我不能,我必须为每个set方法添加长度检查,如果我更改数据库中列的长度,则更新代码。这不是一个令人头痛的问题但如果我能避免这种情况会很好。
答案 0 :(得分:0)
实现Hibernate UserType和
for (... map : config.GetClassMapping())
{
// iterate properties and set usertype to all properties with columns length set
}