当前位置: 首页 > 知识库问答 >
问题:

使用JPA标准的代码的替代方法

俞俊逸
2023-03-14

随着Hibernate 5.2.2中Criteria类中createCriteria()的弃用,它的许多相关函数无法再使用。我找到了标准的另一种用法。createAlias(String,String)和从以下链接添加限制在Hibernate 5中弃用了createCriteria方法,但我找不到如何在JPA criteria中替换criteria中可用的以下函数:

    criteria.setProjection(Projections.projectionList()
                           .add(Projections.distinct(Projections.property("student.id")), "id")
                           .add(Projections.property("student.name"), "name"));
    criteria.addOrder(Order.asc("student.name"));
    if (limit != null)
        criteria.setMaxResults(limit);
    if (offset != null)
        criteria.setFirstResult(offset);
    criteria.setResultTransformer(new AliasToBeanResultTransformer(Student.class));

请给我提供一种使用JPA标准API编写相同代码的替代方法

共有1个答案

斜宁
2023-03-14

到目前为止,我找到了以下替代方法:

    CriteriaBuilder builder = sessionFactory.getCriteriaBuilder();
    CriteriaQuery<Student> criteriaQuery = builder.createQuery(Student.class);
    //Perform the required join
criteriaQuery.multiselect(student.get("id").alias("id"),student.get("name").alias("name")).distinct(true);
    criteriaQuery.orderBy(builder.asc(student.get("name")));
    TypedQuery typedQuery = entityManager.createQuery(criteriaQuery);
    if (limit != null)
      typedQuery.setMaxResults(limit);
    if (offset != null)
      typedQuery.setFirstResult(offset);
    List<Student> resultList = typedQuery.getResultList();

我的问题用上述方法解决了。JPA标准不要求别名为BeanResultTransformer()。它将自己转换为所需的bean。

 类似资料:
  • 问题内容: 我知道的指示: JPA持久性机制读取“ persistence.xml”文件,查找名为“ persistence-unit- name”的持久性单元,并基于该持久性单元构造EntityManagerFactory。 我的问题是,如何强制JPA 使用不同于“ persistence.xml”的文件 ?例如“ persistence-test.xml”。 问题答案: 尽管单个JPA提供程序

  • 问题内容: 在hibernate状态下使用@formula是否有其他解决方案?我需要通过jpa使用它,例如: 问题答案: 您可以结合使用注释和一种方法

  • 我一直在通过Netbeans使用CodeNameOne设计一个应用程序,并遇到了一些问题,特别是“找不到符号”编译错误。经过进一步的研究,我发现这是由于CNO不支持某些库/杂项。 我想知道是否有其他方法可以使用以下库/执行任务: (从文件读取)导入java.io.file;符号:类文件位置:package java.io (抛出FileNotFoundException)导入java.io.Fil

  • 问题内容: 我的iOS应用程序中有.html文件。HTML文件具有少量带有onClick方法的div块。当我点击这些块时,我会在Web视图中调用一些javascript代码,但我还需要在源代码中了解这些事件。 例如,当我点击Web元素并调用onClick时,我需要在代码中调用某些方法,例如 我可以做这个东西吗?谢谢。 问题答案: 在JS中调用Objective-C的方法: 下面的网址有助于做到这一

  • 问题内容: 我正在尝试从 The Go Programming Language Phrasebook ( 《 Go编程语言短语》)中获取 一个示例,该书于2012年基于Go 1.0编写。该示例使用的包现已变为。我目前正在使用Go 1.2.1,并且下面的代码无法按原样编译,因为该软件包现已失效: 我仍然是GoLang的新手,因此我不确定如何将较早的实验软件包集成到标准库中。我做了一些研究,发现现在

  • 问题内容: PHP_excel是否有其他选择可以以自定义格式“导出到XLSX / XLS”文件? 问题答案: 我编写了一个非常简单的类,用于导出到“ Excel XML”(又名SpreadsheetML)。对于最终用户而言,它不如XSLX方便(取决于文件扩展名和Excel版本,他们可能会收到警告消息),但使用起来比XLS或XLSX容易得多。