java spring data jpa复杂查询使用Specifications和Querydsl哪个更简便,更优雅?

看起来都很难啊,
我就是来抱怨抱怨
specifications又有一堆东西要学,教程好难,英文文档还看不懂,使用起来也不好看,
弄一些乱七八糟有的没的的概念;不好

querydsl又需要maven配置乱七八糟一对东西,为啥就不能简简单单的呢,

阅读 1.8k
评论 2018-02-23 提问
    1 个回答

    用到了spring data jpa不想学习Specifications说不过去吧。而且也不难学习啊,学习的东西也并不多啊。

    Specification<User> specification = new Specification<User>() {
                @Override
                public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                    List<Predicate> predicateList = new ArrayList<>();
          
                    predicateList.add(cb.lessThan(root.<String>get("id"), 10));
               
                    Predicate[] pre = new Predicate[predicateList.size()];
                    return cb.and(predicateList.toArray(pre));
                }
            };

    toPredicate里有了CriteriaQuery,有了CriteriaBuilder ,可以说对jpa规范的实现已经很好了。
    英文文档看不懂这是借口,中文的教程也不少了。而且看看源码,也是很容易就理解怎么用了。

    这个也许你可以看看https://www.imooc.com/learn/821

    感觉你有点畏难,写代码有这种想法很不好。很多人,包括我自己经常做一些东西都是现学现用,相关知识太多了,我没有办法全部都记下来,主要就是靠学习能力来解决问题了。碰到难的东西学起来就会觉得越有意义,因为有很多人会因为难不会而不会。

    评论 赞赏 2018-02-24
      撰写回答

      登录后参与交流、获取后续更新提醒