【发布时间】:2017-02-11 02:14:42
【问题描述】:
我是 Hibernate 的新手,正在尝试实现简单的本机查询,但我总是得到 0 行。如果我直接在 db 中运行相同的查询,那么我可以看到记录。
Query query = (Query) entityManager.createNativeQuery("SELECT * FROM USER_PROFILE where ROLE_ID=:roleId "
+ "and USER_EMAIL =:userEmail and USER_PWD=:password");
query.setParameter("roleId",rolId );
query.setParameter("userEmail", username.toLowerCase());
query.setParameter("password", encryptedPwd);
userInfos = query.getResultList();
但 userInfos 列表总是为空的。有人可以建议出了什么问题。
【问题讨论】:
-
错误的数据库?
-
您是否尝试过不使用 'encryptedPwd' 参数?您将加密的通行证存储在数据库中吗?加密使用 md5 之类的东西,可能会被截断?请提供更多详细信息。
-
您的属性 rolId、用户名和 encryptedPwd 中包含哪些值,但您没有得到结果?请将它们也放入您的答案中
-
如果您将查询更改为不带任何参数的内容,例如
"SELECT * FROM USER_PROFILE"你有结果吗? -
以前我使用 Hql,例如 Query query = (Query) entityManager .createQuery("from UserInfo where userEmail=:userEmail and password=:password ");并且使用相同的论点它工作正常。
标签: java oracle hibernate hibernate-native-query