[英]How to use @JsonIgnore to be applied only when the object is not the root object?
[英]how to Use @JsonIgnore according to the rest request
注意:不包括不同的概念,以便專注於問題。 在 API 請求中使用 Entity 通常是不正確的。 在此示例中,實體用於 API 體系結構以僅關注問題。
我正在用 JPA 做一些例子。
在建立關系時,我不得不使用@JsonIgnore
。 當我沒有使用JsonIgnore時,它進入了死循環並給出了序列化錯誤。 然后我通過在相關字段中添加@JsonIgnore
注釋解決了我的問題。
但是,例如,當我想使用分支號 1 和分支號 1 帶來所有用戶時,我無法返回列表,因為它用@JsonIgnore
標記了它。 我可以根據 rest 請求過濾@JsonIgnore
標記嗎?
如果出現 POST 請求, @JsonIgnore
應該可以工作,但如果出現 GET 請求, @JsonIgnore
應該處於非活動狀態。
@Entity
@Getter
@Setter
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private double balance;
@ManyToOne
@JoinColumn(name = "branchCode")
private Branch branch;
}
@Entity
@Getter
@Setter
public class Branch {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String address;
@Column(unique = true)
private Integer branchCode;
@OneToMany(mappedBy = "branch")
@JsonIgnore
private List<Account> accounts;
}
添加分支(發布方法)
獲取帳戶(POST 方法)
獲取帳戶信息(獲取方法)
獲取分支(獲取方法)
可以在運行時添加和刪除注釋。 查看有關該主題的這篇文章。 這里的想法是您將在 POST 調用期間設置注釋,並在 GET 調用期間刪除注釋。
這是否適用於 Jackson 或您的用例,我不知道,但您的問題具體涉及“有條件地使用 @JsonIgnore object”。 您可以通過實驗確定這種方法是否有效,並希望報告您的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.