Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Spring数据-如何告诉Spring要检索哪些实体_Spring_Hibernate_Jpa_Spring Data - Fatal编程技术网

Spring数据-如何告诉Spring要检索哪些实体

Spring数据-如何告诉Spring要检索哪些实体,spring,hibernate,jpa,spring-data,Spring,Hibernate,Jpa,Spring Data,如果我有几个实体,就说: @Entity class Book{ String name; Author author; } @Entity class Author{ String name; City hometown; } @Entity class City{ String cityName; } 如果我想检索所有的书,如果我使用经典的JPA存储库和Spring数据,只做一个findAll,它将为我检索所有的书以及所有作者及其家乡。我知道我可以使用@JsonIgnore,但我认为

如果我有几个实体,就说:

@Entity
class Book{
String name;
Author author; 
}

@Entity
class Author{
String name;
City hometown;
}

@Entity
class City{
String cityName;
}
如果我想检索所有的书,如果我使用经典的JPA存储库和Spring数据,只做一个findAll,它将为我检索所有的书以及所有作者及其家乡。我知道我可以使用@JsonIgnore,但我认为这只会阻止返回内容,而不会阻止在数据库中查找内容。而且我有一些方法确实希望返回书籍和作者,所以@JsonIgnore-ing对我来说不起作用。有这样的吗?告诉Spring数据要查找什么和返回什么?任何链接或指南或方法,我不知道,将不胜感激

首先,把你们的亲戚标记为懒惰 然后指定每个查询需要获取哪些数据。 例如,见:
Spring数据具有“投影”的概念,允许您返回同一实体的不同表示形式

正式文件:

Spring数据查询方法通常返回一个或多个 由存储库管理的聚合根目录。然而,它可能 有时需要根据特定的条件创建预测 这些类型的属性。Spring数据允许专门建模 返回类型,以便更有选择性地检索 管理总量

如果投影是“封闭”投影,则投影接口的访问器方法都与目标聚合的属性匹配,那么文档还指出:

Spring数据可以优化查询执行[只选择相关字段],因为我们知道 支持投影代理所需的所有属性

Spring数据还允许在运行时动态指定投影。进一步见:


Spring数据提供预测。@AlanHay嘿,预测是我一直在寻找的,请随意回答,我会接受的!谢谢