Java JPA Hibernate查询与本机查询
我使用Java JPA Hibernate查询与本机查询,java,hibernate,spring-boot,spring-jdbc,Java,Hibernate,Spring Boot,Spring Jdbc,我使用Spring数据JPA(hibernate)生成的查询从我的Sqlserver获取数据。现在,我的系统中出现了与性能相关的问题 Load findByLoadId(整数loadId) 这是我用来获取数据的查询。这个查询返回25个单元格数据,但我只使用其中的5个数据 我可以使用像这样的直接本机查询吗 从加载位置选择id、日期、createdBy、createdOn、loadName loadId=:loadId 但是,如果本机查询是可建议的,那么我会遇到这样的问题:ORM框架是否会通过从数据
Spring数据JPA(hibernate)
生成的查询从我的Sqlserver
获取数据。现在,我的系统中出现了与性能相关的问题
Load findByLoadId(整数loadId)
这是我用来获取数据的查询。这个查询返回25个单元格数据,但我只使用其中的5个数据
我可以使用像这样的直接本机查询吗
从加载位置选择id、日期、createdBy、createdOn、loadName
loadId=:loadId
但是,如果本机查询是可建议的,那么我会遇到这样的问题:ORM框架是否会通过从数据库获取不需要的数据来降低性能。您的问题的答案是肯定的,ORM框架可能只是在引擎盖下执行
SELECT*
,这可能会导致不需要的信息通过网络发送到您的应用程序。如果JPA存储库接口的行为是这样的,您可以切换到显式JPA查询(例如,使用@query
注释),甚至是本机查询。然后,只需选择所需的列。这里的问题是ORM框架将对象模板(例如类)映射到整个数据库表。因此,实体的概念隐含地包括每个数据库列。如果选择只选择某些列,那么可能需要在Java端进行一些处理。请注意,如果使用JPA查询,您的代码在理论上仍然是独立于数据库的。并且只包含少数字段的Spring数据投影将只选择这些字段。@chrylis onstrike-您的罢工与Monica事件有关吗?我不是说没有。我是说列作为单元格数据