Java 带命名参数的hibernate查询不给出结果
在SpringMVC中使用hibernate命名参数时,我遇到了一个问题Java 带命名参数的hibernate查询不给出结果,java,spring,hibernate,Java,Spring,Hibernate,在SpringMVC中使用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", p
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'"
我得到用户值
我做错了什么?从基本活页夹的hibernate日志判断。变量username和password在开始和结束处包含两个双引号
查看调试器中的变量或尝试硬编码setParameter方法中的值。是否启用show\u sql查看被触发的查询?是:它是:选择users0\uID作为id0\u0,选择users0\u0.password作为password0\u0,users0_u0.username作为username0_0来自users0_0,其中users0_0.username=?和users0_2;u.password=?能否将setParameter更改为setString?可能问题在于识别用户名和密码对象的类型。这些物体是字符串吗?是的,结果是一样的:是的,我几分钟前就注意到了。傻我:P。但是谢谢