Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA Hibernate查询与本机查询_Java_Hibernate_Spring Boot_Spring Jdbc - Fatal编程技术网

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事件有关吗?我不是说没有。我是说列作为单元格数据