当前位置: 首页 > 知识库问答 >
问题:

如何在spring boot jpa中将like%SearchKey%转换为本地查询

柯曦
2023-03-14

我试图将以下查询转换为本机查询,当查询返回2个元组时,我得到了空列表

以下是查询:

SELECT 
  s.id AS shopID,
  s.shop_name AS shopName 
FROM
  shop s 
WHERE s.shop_name LIKE '%store%' ;

下面是我创建的方法,它返回空列表,而它应该发送一个包含两个对象的列表(这是m repository的方法)

    @Query(value = "SELECT \n" +
            "  s.id AS shopID,\n" +
            "  s.shop_name AS shopName \n" +
            "FROM\n" +
            "  shop s \n" +
            "WHERE s.shop_name LIKE %:searchKey%", nativeQuery = true)
    List<Object[]> buyerDashboardSearchSuggestion(@Param("searchKey") String searchKey);

{
    "searchKey": "store"
}
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>

共有1个答案

古弘
2023-03-14

我怀疑%:SearchKey%在本机查询中的组合,我认为%一定是参数的一部分。

@Query(value = "SELECT \n" +
            "  s.id AS shopID,\n" +
            "  s.shop_name AS shopName \n" +
            "FROM\n" +
            "  shop s \n" +
            "WHERE s.shop_name LIKE :searchKey", nativeQuery = true)
List<Object[]> buyerDashboardSearchSuggestion_internal(@Param("searchKey") String searchKey);

default List<Object[]> buyerDashboardSearchSuggestion(String searchKey) {
    return buyerDashboardSearchSuggestion_internal("%"+searchKey+"%");
    //todo escape special chars like % and _ in "searchKey"
}
 类似资料:
  • 问题内容: 我正在尝试在jni中将jbyteArray转换为本地c字符串(char *)?不幸的是,我找不到有关该操作的任何文档。我正在C代码中使用以下原型调用Java函数。 在C代码中,我正在调用此函数,该函数返回一个字节数组。该字节数组的内容是一个Java字符串。但是我需要将其转换为ac字符串。 问题答案: 相信您会使用和。就像是: 你应该能够投给在这一点上,以访问数组中的数据。请注意,这可能

  • 如何正确转换dto到json在Java?我这样做就像下面使用: 问题在于格式化字段。在Dto我有我的日期在这种格式:但转换此dto到json字节后,我看到我的拆分为对象与许多属性如下: 在使用之后,我希望将中的所有属性以与转换之前相同的格式进行转换。如何做到这一点? 谢谢你的帮助!

  • 问题内容: 如何将UTC时间转换为 当地时间 ? 我已经为我需要当地时间的所有国家/地区创建了具有UTC时差的地图。然后,我将该差异作为持续时间添加到当前时间(UTC),并打印结果希望是该特定国家/地区的当地时间。 由于某些原因,结果是错误的。例如,在匈牙利,相差一小时。知道为什么我得到的结果不正确吗? 问题答案: 请记住,操场的时间设置为,因此它正在工作。 正确的方法是使用,这是一个示例:

  • 问题内容: 我正在寻找C#代码以将HTML文档转换为纯文本。 我不是在寻找简单的标记剥离方法,而是会输出纯文本并 合理 保留原始布局的东西。 输出应如下所示: W3C的Html2Txt 我看过HTML Agility Pack,但我认为这不是我所需要的。有人还有其他建议吗? 编辑: 我只是从CodePlex下载HTML Agility Pack ,并运行了Html2Txt项目。真令人失望(至少是将

  • 问题内容: 是否可以在MySQL查询中将文本转换为数字?我有一列带有标识符的列,该标识符由名称和数字组成,格式为“名称- 数字”。该列具有VARCHAR类型。我想根据数字(行名相同)对行进行排序,但是根据do字符顺序对列进行排序,即 如果我减少了数字,是否可以将“ varchar”数字转换为“真实”数字并用它对行进行排序?我想获得以下订单。 我无法将数字表示为单独的列。 编辑2011-05-11

  • 我知道我应该使用函数,但我不知道如何使用,也没有看到它的任何示例。