Spring Boot,过滤 OneToMany(mappedBy)
Posted
技术标签:
【中文标题】Spring Boot,过滤 OneToMany(mappedBy)【英文标题】:Spring Boot, filtered OneToMany(mappedBy) 【发布时间】:2022-01-23 00:19:22 【问题描述】:我有这两个实体:
public class Book
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "title")
private String title;
@OneToMany(mappedBy = "book")
private List<UserBook> userBookList;
和
public class UserBook
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "user_id")
private long userId;
@ManyToOne
@JoinColumn(name = "book_id", nullable = false)
private Book book;
@Column(name = "page_read")
private int pageRead;
我想要实现的是从 postgre 数据库中检索书籍列表,并将来自相关 UserBook 实体的对象注入 userBookList(对于每本书)给定当前用户 发送请求。到目前为止,每次我获得书籍列表时,userBookList 都会包含 UserBook 表中与他的特定书籍相关的所有项目。
有干净的方法吗?
【问题讨论】:
【参考方案1】:所以你上面有的是双向映射。如果您使用 userBookList,它有多个 UserBooks 引用一本书。如果您只想要一个没有循环引用的干净 JSON 输出,请将 @JsonIgnore 添加到您不想重复的输出。
【讨论】:
@Loris 做了这项工作吗?如果可以,您可以接受我的回答,这将增加您获得答案的机会以上是关于Spring Boot,过滤 OneToMany(mappedBy)的主要内容,如果未能解决你的问题,请参考以下文章
使用 JPA 的 Spring Boot OnetoMany
Spring boot JPA - 没有嵌套对象的 JSON 与 OneToMany 关系
Spring Boot中@OneToMany与@ManyToOne几个需要注意的问题
在 Spring Boot 中使用生成的 ID 持久化 OneToMany 实体
如何在 Spring Boot JPA 中的 OneToMany 中为孩子获取 Null 值
@OneToMany Spring Boot 2.1.5.RELEASE 中的 Spring Data JPA 没有获取所有数据