如何下单子句条件查询

csf*_*csf 2 jpa criteria java-ee

这是mycode:

       public List<Veiculo> getAll()
   {

      CriteriaQuery<Veiculo> criteria = this.entityManager
            .getCriteriaBuilder().createQuery(Veiculo.class);
      return this.entityManager.createQuery(  
            criteria.select(criteria.from(Veiculo.class))).getResultList();
   }
Run Code Online (Sandbox Code Playgroud)

现在,我需要一个用于条件查询的order by子句。

orderby veiculo.getServico
Run Code Online (Sandbox Code Playgroud)

我尝试,但是不工作

   public List<Veiculo> getAll()
   {

      CriteriaQuery<Veiculo> criteria = this.entityManager
            .getCriteriaBuilder().createQuery(Veiculo.class);
      return this.entityManager.createQuery(  
            criteria.select(criteria.from(Veiculo.class)).orderBy(getVeiculo().getServico())).getResultList();
   }
Run Code Online (Sandbox Code Playgroud)

Mas*_*ave 5

重写后的内容应该对您有用,没有编译,因此请考虑作为示例性的元代码

    CriteriaBuilder cb = this.entityManager
                .getCriteriaBuilder();
    CriteriaQuery<Veiculo> criteria = cb.createQuery(Veiculo.class);
    Root<Veiculo> root = criteria.from(Veiculo.class);
    return this.entityManager.createQuery(
                 criteria.select(root).orderBy(cb.asc(root.get("servico"))))
           .getResultList();
Run Code Online (Sandbox Code Playgroud)