繁体   English   中英

Spring Boot REST仅在JSON响应中显示父项的ID

[英]Spring Boot REST display id of parent only in a JSON response

假设我有以下课程:

public class ChildEntity {

   ...

   @ManyToOne
   private ParentEntity parent;  

   ...

}

现在,我有一个REST端点,该端点从数据库中检索子实体对象,因此我的JSON是以下内容:

{"id": "123", "name":"someName", "parent": { //parent fields here } ... }

我想用另一种方式格式化JSON响应。 我希望父项仅显示数据库中的ID,而不显示整个对象:

{"id": "123", "name":"someName", "parentId": "1" ... }

基本上直接从端点返回实体不是一个好主意。 您在数据库模型和响应之间进行了非常紧密的耦合。 相反,实现一个POJO类,该类将等效于您发送的HTTP响应。

此POJO仅具有所有ChildEntity字段和parentId ,并将在HTTP层中构造。

请,请参阅注释中的讨论,根据我的看法,从Web层返回的此类对象基本上不是DTO。

我正在注释@JsonIgnore我不想加入JSON响应的任何字段。 为每个实体创建并行POJO是一项昂贵的工作。

@JsonIgnore
@NotNull
@Column(name="DELETED")
private boolean deleted = false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM