Q: 当Oracle数据库中定义的字段为CHAR(20)的时候,假如插入一条为AA的记录。 实际上数据库中存储的为"AA"+18个空格,用Hibernate取出,自然也取出 "AA"+18个空格,请问在Hibernate中有没有什么设置可以自动将空格Trim掉,而不用将字段改成VARCHAR2型或自己手动Tirm。
Solution 1: in PO like follows:
setABC(string abc); {
this.abc = abc.trim();;
}
Problem:setXXX的时候做一个trim,结果在transcation.commit时hibernate发现key已经被改变了,于是抛出Exception出来,不知道还有什么其它的方法
Summary:
对于Char的应用应该限制在长度固定的字段, 你插入的刚好是你所定义的长度。其他情况我们可以选择VARCHAR2。
Hibernate处理CHAR类型空格
本文探讨了在使用Hibernate框架时遇到的关于CHAR(20)类型字段的问题,即插入短于定义长度的数据时,数据库会自动填充剩余部分为空格。文章讨论了解决此问题的不同方法,包括通过代码进行trim操作的潜在风险。
1082

被折叠的 条评论
为什么被折叠?



