gpt4 book ai didi

java - JPA Hibernate 查询与 native 查询

转载 作者:行者123 更新时间:2023-12-01 19:43:19 28 4
gpt4 key购买 nike

我使用 Spring Data JPA (hibernate) 生成的查询来从我的 Sqlserver 获取数据。现在我的系统中遇到了与性能相关的问题。

Load findByLoadId(Integer loadId);

这是我用来获取数据的查询。此查询返回 25 个单元格数据,但我只使用其中的 5 个数据。

我可以使用直接 native 查询吗

select id,date,createdBy,createdOn,loadName from Load where loadId=:loadId

但是如果建议使用 native 查询,那么我会遇到这样的问题:ORM 框架是否会通过从数据库获取不需要的数据来降低性能

最佳答案

通过“数据单元格”,我假设您指的是数据库表列,而不是记录。您的问题的答案是,是的,ORM 框架可能倾向于在幕后执行 SELECT * 操作,这可能会导致不需要的信息通过网络发送到您的应用程序。如果 JPA 存储库接口(interface)以这种方式运行,您可以切换到显式 JPA 查询(例如使用 @Query 注释),甚至是 native 查询。然后,只需选择您想要的列。这里的问题是 ORM 框架将对象模板(例如类)映射到整个数据库表。因此,实体的概念隐含地包括每个数据库列。如果您选择仅选择某些列,则可能需要在 Java 端进行一些处理。请注意,如果使用 JPA 查询,理论上您的代码仍然独立于数据库。

关于java - JPA Hibernate 查询与 native 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59150562/

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