gpt4 book ai didi

java - 实现搜索功能 - 以字符串作为参数和通配符 % 的 eclipselink SQL

转载 作者:行者123 更新时间:2023-11-29 20:59:06 27 4
gpt4 key购买 nike

我在网站的 SQL 查询中使用 eclipselink 语法时遇到困难。目前,我已经创建了一个带有适当按钮的搜索文本框条目。数据记录可以通过标题和描述进行搜索,但是搜索内容必须与我的数据库数据中的标题/描述完全匹配。我的主要问题是使用带有参数“searchString”的 LIKE 子句和通配符功能 (%) 创建正确的 SQL 查询。

下面,我包含了来自实体类的查询示例。

@NamedQuery(name = "Ad.findByString", query = "SELECT a FROM Ad a WHERE a.title LIKE :searchString OR a.description LIKE :searchString")

我理解“:”标记表示正在使用参数。对于如何实现通配符 % 功能以便搜索返回包含搜索内容的广告,有人有任何建议吗?

下面我还通过数据库类包含了我的 getSearchedAds 方法

public static Collection <Ad> getSearchedAds (String searchString) {
EntityManager em = DBUtils.getEmFactory().createEntityManager();
Collection<Ad> results = null;

TypedQuery<Ad> q = em.createNamedQuery("Ad.findByString", Ad.class);
q.setParameter("searchString", searchString);

try {
results = q.getResultList();

} catch (Exception e) {
results = null;
}

感谢您的宝贵时间。

最佳答案

我相信您需要将 db-wildcard 字符连接到 searchString,然后再将其设置为查询的参数:

searchString = "%" + searchString + "%";
q.setParameter("searchString", searchString);

并保持 NamedQuery 不变。

关于java - 实现搜索功能 - 以字符串作为参数和通配符 % 的 eclipselink SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37381742/

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