【发布时间】:2021-09-02 02:37:51
【问题描述】:
我在 DB 中有一个人员列表,每个人都有一个 CV 字段,它是 Spring 中的 MultiPart 文件。我试图从 db 中获取所有人,但忽略 CV 字段,因为我不想在使用 getAllPerson 函数时被下载。有可能吗?
【问题讨论】:
标签: java spring spring-boot rest spring-data-jpa
我在 DB 中有一个人员列表,每个人都有一个 CV 字段,它是 Spring 中的 MultiPart 文件。我试图从 db 中获取所有人,但忽略 CV 字段,因为我不想在使用 getAllPerson 函数时被下载。有可能吗?
【问题讨论】:
标签: java spring spring-boot rest spring-data-jpa
是的,你可以。 您必须使用 get 方法为您的指定字段创建一个新接口,如下所示。
interface Person{
String getId();
String getName();
}
然后通过提及您的新Person 对象,为您的存储库创建一个获取数据列表的方法,如下所示。
List<Person> findAllWithoutCV();
【讨论】:
如果您只想在序列化为 JSON 时忽略某个字段,您可以使用@JsonIgnore 标签。
如果您想在 Json 上包含它而不是在 Jpa 上包含它,请使用 @Transient 和 @JsonInclude 标签。
如果您不想每次获取元素时都从数据库中读取特定字段,那么您可以在该字段上使用Lazy loading。然后,只有当您对该字段使用 getter 时,您才会从数据库中检索它。
最后,如果你想对 JSON 进行不同的序列化,你可以使用JSON Views。这将允许您定义同一对象的不同视图,并在序列化时选择要使用的视图。
所有这些工具都可以协调使用以实现您想要的任何东西。
【讨论】:
使用 @JsonIgnore 直接在字段上注解:
【讨论】: