HQL中的特殊字符

时间:2011-06-07 10:44:10

标签: hql special-characters

您好我试图从mySql数据库获取使用Hibernates HQL的查询 *

public String getDetailsByUserAndFullPath(String user,String fullpath) {
    String temp2 = "%" + user + "%";
            String temp3 = "%" + fullpath + "%";
            // Query query =
            Query query_bd = session
                    .createQuery("from Files files  where user like ? and full_path like ? escape '\'");
            query_bd.setString(0, temp2);
            query_bd.setText(1, temp3);

            List<Files> list = query_bd.list();

问题是fullpath包含\如 C:\ TEMP \ example.docx 我使用转义获得e查询错误 我很害羞这是一件小事,但我已经杀了两个小时了!! 请帮忙 TNX

1 个答案:

答案 0 :(得分:1)

\也是用你的语言(似乎是Java)的转义

所以查询看起来像这样。

from Files files  where user like ? and full_path like ? escape ''

尝试添加另一个反斜杠

 from Files files  where user like ? and full_path like ? escape '\\'

如果您使用的是binded参数,则不需要转义字符,我也不记得这是某些DBMS中的特殊字符。此外,还提供了escape参数以支持%_字符的可能性。