我在spring MVC中使用hibernate命名参数时遇到问题
Session session = sessionFactory.openSession();
Query q = session.createQuery("from Users u where u.username = :name and u.password = :pass");
q.setParameter("name", username);
q.setParameter("pass", password);
Users user = (Users) q.uniqueResult();
使用log4j时的输出是和打印用户
2017-01-20 22:34:17 TRACE BasicBinder:83 - binding parameter [1] as [VARCHAR] - "test"
2017-01-20 22:34:17 TRACE BasicBinder:83 - binding parameter [2] as [VARCHAR] - "test"
user = null
当我使用查询时:
"from Users u where u.username = 'test' and u.password = 'test'"
我获得了用户值。
我在这里做错了什么?
答案 0 :(得分:1)
根据basic-binder
的休眠日志判断。您的变量username
和password
包含两个双引号(在开头和结尾)。
查看调试器中的变量或尝试使用setParameter
方法中的值进行硬编码。