gpt4 book ai didi

java - 有什么方法可以在 HQL 中执行此查询吗?

转载 作者:行者123 更新时间:2023-12-01 10:10:00 25 4
gpt4 key购买 nike

我是 Hibernate 新手,正在用 Java 创建一个简单的电影查找器应用程序。我需要在我的 dao 中进行查询,通过关键字列表搜索电影。我知道如何在 SQL 中执行此操作,但我想知道是否有任何方法可以进行 HQL 查询来执行此操作。 dao中的Java方法接收一个List,它是一个keyowrds列表,SQL语句如下:

SELECT *
FROM movies
WHERE name LIKE '%keyword1%' OR name LIKE 'keyword2' ...

因此,要实现这一目标,必须遍历所有列表并连接每个关键字的查询。

是否可以在 HQL 中使此查询更加简单,以便您可以将关键字列表传递给 que 查询,以便它可以与 LIKE 语句一起使用?

谢谢。

最佳答案

SELECT *
FROM movies
WHERE name LIKE '%keyword1%' OR name LIKE 'keyword2'

将转换为 HQL 为

from movies m where m.name like :keyword1 or m.name like :keyword2

查询时需要传递命名参数keyword1keyword2

如果您坚持使用 like 匹配器,则需要循环列表并动态生成查询。

另一种选择是在 HQL 中实际使用 IN 子句,但这会使通配符匹配变得不可能。

from movies m where m.name in (:keywords)

关于java - 有什么方法可以在 HQL 中执行此查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com