hibernate查询语言还是使用条件?

2024-04-01

任何人告诉我使用 criteria/hql/sql 进行查询。 要求是用户输入电子邮件或用户名,查询返回密码 来自表用户的用户。


Criteria API 非常适合动态查询生成,并且是我的首选。你可以这样做:

Criteria criteria = session.createCriteria(User.class)
    .setProjection(Projections.property("password"));

if (email != null) {
    criteria.add(Expression.eq("email", email));
}
if (username != null) {
    criteria.add(Expression.eq("username", username));
}
String password = (String) criteria.uniqueResult();

请注意,我有点推断,但您不应该在数据库中存储明确的密码,也不应该通过电子邮件发送密码(这本质上是不安全的)。实际上,密码恢复的常见过程是通过邮件发送具有有限生命周期的链接,允许用户输入新密码。


Update:实际上,您可能不需要在这里进行动态查询,但我将上面的内容留给参考。

要使用 Criteria API 实现 OR,您可以执行以下操作:

Criteria criteria = session.createCriteria(User.class);
Criterion username = Restrictions.eq("username", usernameOrPassword);
Criterion email = Restrictions.eq("email", usernameOrPassword);
LogicalExpression orExp = Restrictions.or(username, email);
criteria.add(orExp);

在 HQL 中,您可以运行以下查询:

from User s 
where u.username = :usernameOrPassword 
   or u.password = :usernameOrPassword

在这种情况下,选择哪种解决方案并不重要,两者都可以完成工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hibernate查询语言还是使用条件? 的相关文章

随机推荐

  • 如何将 pyspark 数据框保存在单个 csv 文件中

    这是这个的延续如何将数据帧保存到 csv pyspark https stackoverflow com questions 60498321 how to save dataframe into csv pyspark thread 我正
  • 查询以选择两个日期之间的数据,格式为 m/d/yyyy

    当我尝试从两个日期之间的表中选择记录时 我遇到了问题 m 使用以下查询 select from xxx where dates between 10 10 2012 and 10 12 2012 这个查询对我有用 但是当日期的格式如 1 1
  • React 的 Webpack 错误

    我正在尝试根据此配置 webpacktutorial https robots thoughtbot com setting up webpack for react and hot module replacement并不断收到相同的错误
  • 如何在编码时阻止自己覆盖 Python 函数?

    在追踪 Python 代码中的错误时 经常令人头疼的一个问题是看似无害的代码片段 如下所示 list a b c c list set list 这失败了 因为我用变量列表覆盖了函数 list 显然是一个人为的例子 但重点是 Python
  • AWS 上的 Node JS“Hello world”服务器

    我尝试在 AWS t1 micro 实例上运行 Hello world 服务器 我做了什么 我在aws上安装了Node 写了这样的东西 require http createServer function request response
  • 在 html2pdf 中使用 css 浮动

    我使用 float 将 2 个 div 放置在彼此旁边 a href printbox php print a
  • Excel countif vba 代码,其中包含产生值的条件

    我不确定我想要实现的目标是否可能 所以这里是 我有 2 张工作簿 第一张表包含员工的原始数据以及他们参加或未参加的培训 他们无法参加培训 工作表包含几列 例如 姓名 特殊 ID 每个员工都不同 2 个空白列 存在 是 否 以及更多 第二张表
  • MongoDB:更新子数组的属性仅更新第一个元素

    匹配元素如下所示 id oid 519ebd1cef1fce06f90e3157 from Tester2 to Tester messages username Tester2 message heeey read false usern
  • 计算异或的算法

    我想计算 0 到 n 1 2 1 之间的数字与 0 到 n 1 2 1 之间的每个数字的异或 我想在 O n 时间内完成此操作 并且不能使用 XOR OR AND 运算 如果我知道X和Y的XOR 我可以在常数时间内计算X 1和Y的XOR吗
  • 从 ARC 静态库访问 @property 时,ARC 应用程序崩溃

    我有一个 ARC 自动引用计数 questions tagged automatic reference counting 构建静态库 也称为 ARC 的应用程序 该应用程序将正常启动 但当执行读取或写入静态库中的 property 的操作
  • 相对路径不适用于 css 中的图像

    我有以下文件结构 C wamp myproject admin webroot images 我有一个位于 admin 文件夹内的 index php 文件 它调用位于同一文件夹中的 header inc php 文件 header inc
  • 将 MySQL 连接到 Visual Studio C#

    我正在尝试编写数据访问代码以将 MySQL 连接到 Visual Studio 到目前为止我有这段代码 但我不知道它是否正确 我正在使用我的书 并注释掉了一些其他内容 但是当我包含注释掉的信息时 我收到了错误 public static M
  • python中最好/最容易使用的加密库是什么[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 python 加密几个文件
  • ReactiveMongo 是如何实现的,使其被认为是非阻塞的?

    阅读有关 Play Framework 和 ReactiveMongo 的文档让我相信 ReactiveMongo 的工作方式是使用很少的线程并且从不阻塞 然而 从 Play 应用程序到 Mongo 服务器的通信似乎必须发生在某处的一些线程
  • jQuery 模板 - 在模板内执行 JS 代码

    我正在尝试了解有关 jQuery 模板的更多信息 但似乎无法在模板内执行任何 JS 调用 请注意 我的 objectToString 函数从未被调用 只是呈现为字符串 我一时兴起尝试将其包装在 中 但没有成功 有谁可以帮忙吗 安东尼 你可以
  • 如何使用另一个模式的表编写存储过程?

    为了调用Oracle的函数和过程 表必须在HR用户中吗 当我从另一个用户运行函数时 它给我一个编译错误 对于我的项目 我想从另一个用户运行函数和过程 我该如何实施 要使用另一个模式中的表编写函数或过程 表所有者需要授予我们所需的权限 例如
  • 一个人可以在 Magento 社区版上托管多个商店吗?

    一个人可以在 Magento 社区版上托管多个商店吗 以及如何在设置每个新商店时自动为其创建子域 是的 您可以从 Magento 社区版运行多个站点 Magento 官方博客实际上刚刚发布了一篇关于此问题的帖子 您可能想查看一下 http
  • 我尝试实施 UPSERT 时出现问题

    我在检查更新 PostgreSQL 中的表的条件时遇到此问题 它必须检查用户是否下载过一次 如果是 则添加 1acessos
  • 如何从任何地方获取上下文? [复制]

    这个问题在这里已经有答案了 在Android中 有什么方法可以静态获取应用程序的上下文吗 例如从后台线程检索它 Thanks 最简单 也是正确 的方法是 定义一个新类 public class MyApp extends Applicati
  • hibernate查询语言还是使用条件?

    任何人告诉我使用 criteria hql sql 进行查询 要求是用户输入电子邮件或用户名 查询返回密码 来自表用户的用户 Criteria API 非常适合动态查询生成 并且是我的首选 你可以这样做 Criteria criteria