gpt4 book ai didi

java - 使用自定义查询进行 JPA 优化

转载 作者:行者123 更新时间:2023-11-30 08:12:04 25 4
gpt4 key购买 nike

我使用 JPA/Hibernate 作为 ORM,现在想要优化我的查询以仅加载特定端点所需的数据。仅加载特定类的属性子集然后将其转换为 JSON 的最佳方法是什么?对于端点,我使用 Spring MVC 和 Jackson JSON Mapper。

我想到的方法,但尚未测试。

  1. 创建仅包含必要属性的 POJO 对象使用属性映射查询字段@SqlResultSetMapping

    这种方法需要添加很多额外的类,但是其他比这看起来还不错。

  2. 忽略数据库查询的开销并限制我的使用 JSONViews 响应数据。

    将不同的内容放在一起可能会很快变得困惑JSONViews 看起来很乏味。对于大多数查询来说,开销肯定是微不足道,但我很好奇如何映射更大更复杂的查询。

  3. 使用 Java.sql.PreparedStatements 并手动映射 ResultSet。另外使用 @JsonInclude(Ininclude.NON_NULL) 仅使用非 null值(value)观。目前这对我来说似乎是最好的解决方案,但它忽略了完全是 JPA,我不确定这是否应该是我的解决方案。我知道我失去了 ORM 的所有优势,但似乎每个其他解决方案需要类似或更复杂的工作。

  4. ???

过去几个月我主要使用 JavaScript/Node 进行开发,我喜欢能够准确地生成响应所需的对象。是否有推荐的方法来做这些事情,对我来说这似乎是一个常见的用例。

谢谢

最佳答案

我们以前总是使用 POJO 对象来满足这些需求,但有时使用“select new”构造比结果映射更合适。

select new com.example.MyClass(id, ...) From MyObject

也许你可以考虑一下。

关于java - 使用自定义查询进行 JPA 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30257350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com