我使用hibernate 进行映射    表里有很多的 空格  怎么办 ?  
 数据量有点大  光 表 就有好几百张 。不想手工 去一点一点 update 。怎么办?

解决方案 »

  1.   

    能转译成XML认识的特殊字符么,,
      

  2.   

    什么意思? 没看明白?
    hibernate是映射字段的 ,跟字段是否为空没什么关系吧
      

  3.   


    是数据有空格, 比如 “张三 ” 或者 “ 张三” 前后 有空格的。
      

  4.   


    还是不知道你要做什么。hibernate只是映射字段名,跟字段到底是否有数据,是否数据有空格没关。具体的说是,你想要用hibernate干嘛?查询处理字段数据?还是要干嘛?如果只是映射,那么跟是不是有空没关系!
      

  5.   

    貌似有点知道什么意思了,你想通过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直接处理会更方便点?
      

  6.   

    空格只是这个字段中数据的值而已呀,hibernate只是配置映射关系,跟空格没关系呀,如果你想去掉空格,那就拿到值后在去空格。。
      

  7.   


    比如说  表中有个字段为 registerNO 的 值 为“ 32432511 ”(后面有个空格),使用hibernate进行映射的, 在页面中使用“32432511”(后面没有空格)进行精确查询,是查不到表中这个记录的。
      

  8.   

    这问题题目起的真够晕的 这个是数据的问题和hibernate没关系你可以给所有字符型数据入库前加上 trim现在已经生成的数据可以尝试使用 oracle 的 lTRIM方法
    例子如下
    select lTRIM('                                                                                                 BLDG 18C-1') from dual;
      

  9.   

    可以在注入的时候 把空格字符转换一个其他字符如*  或者你能区别的字符,进行存储, 可用replace()函数 在读取得时候也可以通过类似手段