Spring Data Jpa 中原生查询 REGEXP 的使用详解

 更新时间:2021年12月08日 09:17:44   作者:奔走的箱子  
这篇文章主要介绍了Spring Data Jpa 中原生查询 REGEXP 的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Spring Data Jpa原生查询 REGEXP 的使用

REGEXP 与like 有通用之处, 单 regexp 有更好的精确度,更加自由灵活

在jpa 中使用时 :其中 定位符 ^ 在jpa @query 注解中使用时需要加上引用号 e.g

@Query(value = "select p.id as id  from zt_products AS p 
       where 
        p.enabled=true 
       and 
        p.name regexp  '^'+?1+'$' ",
         nativeQuery = true)
    List<Map> findByName(String names);

如此 方可使用,,但是% 可以不用加。。。。

嗯 暂时就这个样子///

后记:

在实际使用时 发现上述方法存在缺陷; 无论names传的什么值 查询结果一样;

@Query(value = "select p.id as id  from zt_products AS p 
       where 
        p.enabled=true 
       and 
        p.name regexp  ?1,
         nativeQuery = true)
    List<Map> findByName(String rexgexp);//rexgexp 为 regexp 表达式 直接在这里和一起会不起作用

可参考:

https://spring.io/blog/2014/07/15/spel-support-in-spring-data-jpa-query-definitions

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.stored-procedures

spring data jpa 原生查询(查一个json中的某一字段)

数据库:

jpa 查询 java:

@Component("ediHistoryDAO")
public interface EdiHistoryDAO extends CrudRepository<EdiHistoryDO, Integer>{
    EdiHistoryDO findById(BigInteger id);
    EdiHistoryDO findByEdiInfoId(BigInteger id);
    List<EdiHistoryDO> findByIdIn(List<BigInteger> id);
    @Query(value="select * from EDI.edi_history  where json_contains(response_summary, ?1) and json_contains(response_summary, ?2)  and json_contains(response_summary, ?3)  and json_contains(response_summary, ?4)", nativeQuery = true)
    public List<EdiHistoryDO> findByResponseSummary(String result,String orderNo,String orderId,String docType);
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android studio按钮点击页面跳转详细步骤

    Android studio按钮点击页面跳转详细步骤

    在Android应用程序中,页面跳转是非常常见的操作,下面这篇文章主要给大家介绍了关于Android studio按钮点击页面跳转的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 使用Feign传递请求头信息(Finchley版本)

    使用Feign传递请求头信息(Finchley版本)

    这篇文章主要介绍了使用Feign传递请求头信息(Finchley版本),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • mysql高版本(8.0+)group_by报错的处理方法

    mysql高版本(8.0+)group_by报错的处理方法

    本文主要介绍了mysql高版本(8.0+)group_by报错的处理方法,这个错误一般发生在mysql 5.7以及 5.7以上的版本中,本文就来介绍一下两种解决方法,感兴趣的可以了解一下
    2023-09-09
  • 浅谈Spring Boot 整合ActiveMQ的过程

    浅谈Spring Boot 整合ActiveMQ的过程

    本篇文章主要介绍了浅谈Spring Boot 整合ActiveMQ的过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Java C++题解leetcode904水果成篮

    Java C++题解leetcode904水果成篮

    这篇文章主要为大家介绍了Java C++题解leetcode904水果成篮示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • springboot实现图片大小压缩功能

    springboot实现图片大小压缩功能

    这篇文章主要为大家详细介绍了springboot实现图片大小压缩功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 详解使用Spring AOP和自定义注解进行参数检查

    详解使用Spring AOP和自定义注解进行参数检查

    本篇文章主要介绍了详解使用Spring AOP和自定义注解进行参数检查,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • SpringBoot3利用AOP实现IP黑名单功能

    SpringBoot3利用AOP实现IP黑名单功能

    在Web应用开发中,控制对特定IP地址的访问权限是一个常见的需求,通过实现IP黑白名单功能,我们可以允许某些IP地址访问应用,同时拒绝其他IP地址的访问,本文将详细介绍SpringBoot3利用AOP实现IP黑名单功能,并附上相应的代码片段,需要的朋友可以参考下
    2024-09-09
  • Android Java判断密码强度方法实例(强度显示)

    Android Java判断密码强度方法实例(强度显示)

    在现代社会中,密码是确保我们个人信息和账户安全的重要手段之一,为了提高密码的安全性,我们可以使用正则表达式来判断密码的强度,这篇文章主要给大家介绍了关于Android Java判断密码强度(强度显示)的相关资料,需要的朋友可以参考下
    2024-03-03
  • spring与mybatis三种整合方法

    spring与mybatis三种整合方法

    这篇文章主要介绍了spring与mybatis三种整合方法,需要的朋友可以参考下
    2017-04-04

最新评论