【发布时间】:2019-01-31 14:39:50
【问题描述】:
我有一个实体“人”,它具有以下属性,
Id
Name
F-Name
Age
Address
当我在 Person 上调用存储库函数 findAll() 时,它会返回一个 Person 列表。
List<Person> list = somefuntionToConvertIterableToList(personRepository.findAll());
这个列表有多个 Person 类型的对象。
Person ...... Id1,Name1, F-Name1, Age1, Address1
Person .......IdN,NameN, F-NameN, AgeN, AddressN
我需要从所有 Persons 中删除“Id”,我该怎么办?
我知道我们可以使用“remove”来删除列表中的元素,但是如何删除元素中的属性呢?
【问题讨论】:
-
请解释你为什么要这样做?
-
我需要把这个数据传给ResponseEntity给客户端,显然“Id”对客户端没有用。
-
为什么不为此创建一个 DTO?
-
您不能“删除”属性!使用 DTO 或类似的方法返回数据的自定义视图,例如 Spring data Projections docs.spring.io/spring-data/jpa/docs/current/reference/html/… 或 JsonView baeldung.com/jackson-json-view-annotation
-
如果它的传出可能杰克逊 @JsonIgnore 有帮助。如果它的内部创建一个附加类,该类具有除 id 之外的所有属性并从 person 构造它。
标签: spring spring-boot jpa collections