我正在尝试使用hibernate查询从数据库中获取记录:
File f = new File("D:/javaTest/2/vas/tumblr_nxxv9dOz881u3reero1_1280.jpg");
Query q = session.createQuery("FROM FileData E WHERE E.name = 'tumblr_nxxv9dOz881u3reero1_1280.jpg' and E.path= "
+ f.getPath() + "' and E.userId=9");
但收到:
Exception in thread "main" org.hibernate.QueryException: unexpected char: '\' [FROM trainee.model.FileData E WHERE E.name = 'tumblr_nxxv9dOz881u3reero1_1280.jpg' and E.path= D:\javaTest\2\vas\tumblr_nxxv9dOz881u3reero1_1280.jpg' and E.userId=9]
记录从file.getPath()
方法存储的数据库中的文件路径。
据我所知,hiberante无法处理\
如何解决我的问题而不将数据库记录文件路径从D:\javaTest\2\vas\tumblr_nxxv9dOz881u3reero1_1280.jpg'
更改为D:/javaTest/2/vas/tumblr_nxxv9dOz881u3reero1_1280.jpg'
?
答案 0 :(得分:0)
您可以使用参数
String v = "\\s";
Query q = session.createQuery("from FileData where path = :v and ...");
q.setParameter("v", v);
<强> TEST 强>
标签表[有一个现有的测试表,所以重复使用它]
Session session = HibernateUtil.getSessionFactory().openSession();
String v = "D:\\javaTest\\2\\vas\\tumblr_nxxv9dOz881u3reero1_1280.jpg";
Query q = session.createQuery("from Tag where name = :v");
q.setParameter("v", v);
输出
Hibernate: select tag0_.tag_id as tag_id1_3_, tag0_.tag_name as tag_name2_3_, tag0_.tag_props as tag_prop3_3_ from tag tag0_ where tag0_.tag_name=?
Tag [id=1, name=D:\javaTest\2\vas\tumblr_nxxv9dOz881u3reero1_1280.jpg]