亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JSON 沒有顯示它在 Postman 中應該如何顯示

JSON 沒有顯示它在 Postman 中應該如何顯示

鴻蒙傳說 2023-04-13 14:30:31
當我嘗試調用 REST 端點時,我的 Postman 有一些奇怪的行為。有一個永無止境的循環。我在 stackoverflow 上找到了一個解決方案,@JsonIgnore 注釋將刪除這個奇怪的循環(我在下面的 Book 實體中有它)但是當我嘗試在 Postman 中列出所有書籍時,我看不到這些書籍的作者。是否有更好的解決方案來顯示作者的書籍(刪除 @JsonIgnore 注釋)但也刪除那個奇怪的循環?Book.java@Entitypublic class Book {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    private String title;    private String isbn;    @ManyToMany    @JsonIgnore // removed wierd loop with data    @JoinTable(name = "author_book", joinColumns = @JoinColumn(name = "book_id"),            inverseJoinColumns = @JoinColumn(name = "author_id"))    private Set<Author> authors = new HashSet<>();    public Book() {    }Author.java@Entitypublic class Author {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    private String forename;    private String surname;    @ManyToMany(mappedBy = "authors")    private Set<Book> books = new HashSet<>();    public Author() {    }BookController.java@RestControllerpublic class BookController {    private BookService bookService;    @Autowired    public BookController(BookService bookService) {        this.bookService = bookService;    }    // expose /books and get list of all books - GET    @GetMapping("/api/books")    public List<Book> getAllBooks() {        return bookService.getAllBooks();    }AuthorController 與 BookController 相同。這是 Book JSON 在 Postman 中的樣子(這些書沒有作者):Postman 中的 Authors 沒問題:這是我從 Book 實體中刪除 @JsonIgnore 時的循環:
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

使用@JsonIgnoreProperties注解為了忽略一個字段上的子字段,那么這個注解會忽略二級字段。


Book 

    - >  authors

                -> books  // this field is ignored


Author 

    - >  books

                -> authors // this field is ignored


@ManyToMany

@JsonIgnoreProperties("books")

@JoinTable(name = "author_book", joinColumns = @JoinColumn(name = "book_id"),

        inverseJoinColumns = @JoinColumn(name = "author_id"))

private Set<Author> authors = new HashSet<>();


@ManyToMany(mappedBy = "authors")

@JsonIgnoreProperties("authors")

private Set<Book> books = new HashSet<>();


查看完整回答
反對 回復 2023-04-13
  • 1 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號