Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用oracle“rowid”使用条件生成器进行排序_Java_Sql_Spring Boot_Jpa_Criteria Api - Fatal编程技术网

Java 如何使用oracle“rowid”使用条件生成器进行排序

Java 如何使用oracle“rowid”使用条件生成器进行排序,java,sql,spring-boot,jpa,criteria-api,Java,Sql,Spring Boot,Jpa,Criteria Api,下面举例说明我的oracle 10g查询,以获得311320之间的排序结果。但由于social_id列不是唯一的,我无法用于排序,正如oracle文档所述,因此我必须使用rowid和social_id组合作为排序参数 `select * from (select employee.*, rownum rnum from (select id,email,date,social_id from employee order by soci

下面举例说明我的oracle 10g查询,以获得311320之间的排序结果。但由于social_id列不是唯一的,我无法用于排序,正如oracle文档所述,因此我必须使用rowid和social_id组合作为排序参数

`select * from
  (select employee.*, rownum rnum
    from
     (select id,email,date,social_id
        from employee
           order by social_id, rowid) employee
    where rownum <= 320
   )
 where rnum >= 311;`
我已经使用CriteriaAPI构建了这个查询,如下所示

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Employee> criteriaQuery = criteriaBuilder.createQuery(Employee.class);
    Root<Employee> root = criteriaQuery.from(Employee.class);
    predicate = criteriaBuilder.like(root.get("social_id").as(String.class), searchTerms + "%");
    criteriaQuery.where(predicate);
    criteriaQuery.orderBy(criteriaBuilder.asc(root.get("social_id")));

    Query query = entityManager.createQuery(criteriaQuery);
    query.setFirstResult(331);
    query.setMaxResults(10);

    employee = query.getResultList();

所以我需要的是将rowid添加到排序参数中,以按社会id和rowid进行排序。有人能帮我完成这项任务吗。谢谢

使用rowid有什么特别的原因吗?如果列没有唯一的数据,则返回结果集“相同的数据返回”中有错误。所以在oracal文档中,它说使用rowid作为此类指令的第二个参数。您可以显示一些示例数据,这实际上是为了获取更多信息,请阅读oracal 10g文档,您可以阅读以下文档