【问题标题】:Fetching results as LinkedHashSet or Set with @Query() or entityManager.getResultList() in Hibernate and JPA在 Hibernate 和 JPA 中使用 @Query() 或 entityManager.getResultList() 作为 LinkedHashSet 或 Set 获取结果
【发布时间】:2020-04-30 06:05:40
【问题描述】:

我想知道返回类型为 Set 或 LinkedHashSet 的 getResultList() #getResultSet() 或 @Query() 是否可行。我的数据库被设计为在表中没有任何重复的行,所以我认为使用 Set 和 LinkedHashSet 会是更好的性能方法。

【问题讨论】:

    标签: spring hibernate jpa spring-data-jpa


    【解决方案1】:

    不,API 不提供任何返回 Set 的方法。您唯一能做的就是将结果作为 List 获取,然后自己创建 Set。

    【讨论】:

    【解决方案2】:

    是的,这是可能的。这是我刚刚创建并测试过的方法:

    @Query(value = "FROM CountryCode cc WHERE cc.id < 5")
    Set<CountryCode> test();
    

    【讨论】:

    • 这是 Spring Data JPA 功能,而不是 Hibernate 或 JPA 功能。 Spring Data JPA 使用 JPA 规范定义并由 Hibernate 实现的 API。该 API 返回一个列表。当然,您或您使用的任何框架都可以将此列表映射到一个集合。但这是一个创建附加集的后处理步骤。
    猜你喜欢
    • 2014-03-21
    • 2020-05-10
    • 2021-09-14
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多