hibernate   模糊查寻(   like   '%中文%')查不出来.字符可以查出来. 
数据库中确实是中文,不是乱码! 
在执行查询之前HQL中也是中文. 
用纯SQL是可以出来的 
现在用的HIBERNATE的HQL出不来
谢谢!

解决方案 »

  1.   

    你不要把中文放在语句里面,使用setParameter,赋值过去而且,还得注意一下数据库的编码问题。Java就是这个编码比较烦人的,
    估计你用的是MySQLSQL / Oracle 我甚至都没发现过编码问题!哈哈!
      

  2.   

    1、在hibernate的属性文件中加入:
    hibernate.show_sql=true。
    这样就能看到你的sql是什么了。2、设定log4j的日志级别为debug。
    这样就能看到绑定变量是什么了。3、看看打出来的sql和你输入到sqlplus中的有什么不同。如果不会启动log4j,可以参见:
    http://blog.csdn.net/fenixshadow/archive/2007/10/03/1810523.aspx你在两个地方问,我在两个地方回^-^
      

  3.   

    这些语句都带分页了.掉的都是封装好的一个分页方法.
    如果 使用setParameter,赋值过去
    我们项目改动就比较大了
    有没有好一点的方法.(回1楼)
      

  4.   

    我照你的方法看了,打出来是like '%???%' ,是乱码
    你有什么方法解决吗?
    我看了我的orcale数据库是编码格式是ZHS16GBK 
    程序是UTF-8的有影响吗?
    (回2楼)
      

  5.   

    问题就在这里了!你的中文是硬编码你把它换成unicode看看!
    \u4e2d\u6587
      

  6.   

    Oracle 可以通过NLS_LANG 设定你的字符集环境。
    Oracle有1年多没用了
    如果你那面是新项目,建议你把新建一个UTF-8的Oracle库算了
      

  7.   

    http://bbs.zxbc.cn/archiver/tid-40354.html参考其中修改NLS_LANG的部分
      

  8.   

    这个我之前也看到过,但是网上有文章说改了ORCALE字符集可能影响到orcale运行
    所有我才找别的解决办法!
      

  9.   

    改ORCALE字符集8成会影响到orcale运行的,除非你重建数据库,然后重新导入数据。不过已经定位到是字符集问题就好办了。