Oracle字段中有空格时,hibernate怎么映射??? 我使用hibernate 进行映射 表里有很多的 空格 怎么办 ? 数据量有点大 光 表 就有好几百张 。不想手工 去一点一点 update 。怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能转译成XML认识的特殊字符么,, 什么意思? 没看明白?hibernate是映射字段的 ,跟字段是否为空没什么关系吧 是数据有空格, 比如 “张三 ” 或者 “ 张三” 前后 有空格的。 还是不知道你要做什么。hibernate只是映射字段名,跟字段到底是否有数据,是否数据有空格没关。具体的说是,你想要用hibernate干嘛?查询处理字段数据?还是要干嘛?如果只是映射,那么跟是不是有空没关系! 貌似有点知道什么意思了,你想通过hibernate处理这些数据!可以在model的属性set方法时过滤下,判断是否有空格,如果有就去掉然后重新在update下。比如:class ModelBean { private String name ; public String getName(){ if(name!=null) this.name = this.name.trim(); return this.name } public void setName(String name){ if(name!=null) name = name.trim(); this.name = name; }}Query query = session.createSQL("from ModelBean");List<ModelBean> mb = query.list();for(ModelBean m:mb){ session.saveOrUpdate(m);}不过还是没法批量处理完所有的表,还是的一个表一个表的处理。是否可以考虑通过数据库SQL直接处理会更方便点? 空格只是这个字段中数据的值而已呀,hibernate只是配置映射关系,跟空格没关系呀,如果你想去掉空格,那就拿到值后在去空格。。 比如说 表中有个字段为 registerNO 的 值 为“ 32432511 ”(后面有个空格),使用hibernate进行映射的, 在页面中使用“32432511”(后面没有空格)进行精确查询,是查不到表中这个记录的。 这问题题目起的真够晕的 这个是数据的问题和hibernate没关系你可以给所有字符型数据入库前加上 trim现在已经生成的数据可以尝试使用 oracle 的 lTRIM方法例子如下select lTRIM(' BLDG 18C-1') from dual; 可以在注入的时候 把空格字符转换一个其他字符如* 或者你能区别的字符,进行存储, 可用replace()函数 在读取得时候也可以通过类似手段 小晒一下SSH框架搭建的博客 求助:寻找可在纯java条件下使用的图片编辑插件 ManyToMany的双向关联,操作中间表问题 TOMCAT和APACHE集群问题 hibernate 用uuid.hex生成的主键id有没有方法可以返回 用spring创建sessionFactory时的错误 DTO工厂 struts的分页问题,100分 一个struts的简单问题 高分求:JIVE2。5源代码,不要jdon的. 在action里面返回Action.SUCCESS起到什么作用? java中json转换的问题
hibernate是映射字段的 ,跟字段是否为空没什么关系吧
是数据有空格, 比如 “张三 ” 或者 “ 张三” 前后 有空格的。
还是不知道你要做什么。hibernate只是映射字段名,跟字段到底是否有数据,是否数据有空格没关。具体的说是,你想要用hibernate干嘛?查询处理字段数据?还是要干嘛?如果只是映射,那么跟是不是有空没关系!
private String name ; public String getName(){
if(name!=null) this.name = this.name.trim();
return this.name
}
public void setName(String name){
if(name!=null) name = name.trim();
this.name = name;
}
}
Query query = session.createSQL("from ModelBean");
List<ModelBean> mb = query.list();
for(ModelBean m:mb){
session.saveOrUpdate(m);
}不过还是没法批量处理完所有的表,还是的一个表一个表的处理。是否可以考虑通过数据库SQL直接处理会更方便点?
比如说 表中有个字段为 registerNO 的 值 为“ 32432511 ”(后面有个空格),使用hibernate进行映射的, 在页面中使用“32432511”(后面没有空格)进行精确查询,是查不到表中这个记录的。
例子如下
select lTRIM(' BLDG 18C-1') from dual;