数据库是char(40) 
取出来为什么是个字符啊?
只有一个字符List<?> datas = session.createSQLQuery("select * from user where username='zhangsan'").list();
for(int i=0; i<datas.size(); i++){
Object[] m = (Object[]) datas.get(i);
System.out.println(m[0]);
System.out.println(m[1]);
System.out.println(m[2]);
}取出来只有一个z ? 
映射的文件也是string

解决方案 »

  1.   

    在oracle或sqlServer下会遇到,查询数据表字段类型为char,如果使用Hibernate原生SQL去执行查询,往往只会返回
    一个字符.原因是char在java中只有两个字节.
    解决方法
    1.改成
       select cast(列 as varchar2(列大小)) from 表;或者改为 select trim(列) from 表
    2.指定列返回的类型.
    SQLQuery query = session.createSQLQuery(); 
    query.addScalar(columnAlias,Type);
      

  2.   

       Object[] m = (Object[]) datas.get(i);//M 肯定一串字符串吧 
        System.out.println(m[0]);
        System.out.println(m[1]);
        System.out.println(m[2]);
        m[0] m[1] 这样就是一个个取字符~~
        把所有的拼起来估计就是你要的东西
      

  3.   

    如果用的是HIBERNATE  返回来的应该是对应的对象 
    例如 List<UserBean> datas = session.createSQLQuery("select * from user where username='zhangsan'").list();