JPA Specification 的写法



公司里需要用Specification的pattern写一个比较通用的查询,之前对于JPA的了解仅限于继承JPARepository接口,就能实现基本的查询,又或者加上@Query标签@Modify标签基本能实现所有的增删改查了。


之前看资料的时候也有看到一些对于Specification的描述和实践,那个时候一眼看过去,哎呀妈呀,整啥玩意呢,这么复杂看到。果然人对于未知的事物总是有抵触心理的,不到万不得已不会去了解他。


这次我就来好好了解他。


----------------------------------------------------------------------------------------------邪恶的分割线---------------------------------------------


了解了他其实还是很简单的呢。


要实现的功能是把表里面某个field符合prefix的都找出来,并且prefix-XXXX里面XXXXX必须是数字,不能是字母,里面最大的一条取出来。


一说到是数字,不能是字母,大家一定第一个反应就是用正则表达式吧。


话不多说,附上代码先。


@SuppressWarnings("unchecked")
    @Transactional
    public <T extends DoClass> T getMaxStringFieldValue(final String field, final String prefix, final Class<T> doClass){
        
        Repository<T> rep = (Repository<T>) metadata.getRepository(doClass);
        
        Specification<T> s = new Specification<T>(){

            @Overrid
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值