【问题标题】:How migrate jqpl query to Criteria API如何将 jpql 查询迁移到 Criteria API
【发布时间】:2011-12-10 23:41:03
【问题描述】:

请在 jpql 中有这个查询,我想迁移到标准。你是怎么做到的?

查询:

SELECT c FROM Cartera c,Cliente cli WHERE c.aseId = :aseId and cli.aseId=c.aseId

谢谢

【问题讨论】:

    标签: jakarta-ee jpa criteria-api


    【解决方案1】:
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Cartera> query = cb.createQuery(Cartera.class);
    Root<Cartera> cartera = query.from(Cartera.class);
    Root<Cliente> cliente = query.from(Cliente.class);
    query.select(cartera);
    query.where(cb.equal(cartera.get(Cartera_.aseId), theAseId),
                cb.equal(cliente.get(Cliente_.aseId), theAseId));
    

    应该可以解决问题。不过没有测试。

    【讨论】:

      【解决方案2】:

      在 JB Nizet 的回答之后,您还必须拥有

      TypedQuery<Cartera> tq = em.createQuery(query);
      tq.setFirstResult( offset );  // how many records to skip 
      tq.setMaxResults( pageSize);  // don't want to fetch a million records
      List<Cartera> list = tq.getResultList();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-08
        • 2013-11-12
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        • 2019-10-16
        • 1970-01-01
        • 2019-03-19
        相关资源
        最近更新 更多