【问题标题】:JPQL to CriteriaJPQL 到标准
【发布时间】:2015-05-04 19:40:53
【问题描述】:

我有以下课程:

@Embeddable Class A // (with field String x);
Class B // (with field @Embedded A a)
Class C // (with field @OneToOne B b);

我想创建方法getAllByXs(List<String> xs) 使用条件来获取c.b.a.xxs 中的所有C 条目

内容为SELECT c FROM C c JOIN c.b b WHERE b.a.x IN :param 的键入查询工作正常。如何使用 Criteria 编写相同的查询?

【问题讨论】:

    标签: java jpa criteria jpql


    【解决方案1】:

    基于条件的查询示例如下所示:

    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<C> cq = cb.createQuery(C.class);
    Root<C> c = cq.from(C.class);
    Join<C, B> b = c.join("b");
    cq.select(c)
    cq.where(b.get("a").get("x").in(cb.parameter(List.class, "param")));
    
    List<C> = em.createQuery(cq)
                .setParameter("param", Arrays.asList("foo", "bar", "baz"))
                .getResultList();
    

    【讨论】:

      猜你喜欢
      • 2012-01-14
      • 2019-10-18
      • 1970-01-01
      • 2010-09-16
      • 2011-08-27
      • 1970-01-01
      • 2015-12-28
      • 2015-02-23
      相关资源
      最近更新 更多