【问题标题】:Query is always returning 0 rows查询总是返回 0 行
【发布时间】: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


【解决方案1】:

谢谢大家的建议。 我在这里犯了一个错误,密码被加密了两次。 :( 现已修复。

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 2022-10-07
    • 2015-11-12
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多