json - Spring Data JPA @OneToMany JSON响应与父级不返回第二个实例的父级
问题描述
我在 Spring Data JPA 中有两个实体,定义为 USER 和 USER_ACTIVITY,关系为:每个用户都有很多活动。
在我定义为的用户实体上
@Entity
@Getter
@Setter
@Table(name="user")
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="id")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="user_id")
private long id;
@JsonIgnore
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "user")
private List<UserActivity> userActivities;
}
我的子实体用户活动被定义为
@Entity
@Getter
@Setter
@Table(name="user_activity")
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="id")
public class UserActivity {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
}
我的活动存储库定义为
@Repository
public interface UserActivityRepository extends JpaRepository<UserActivity, Long> {
public List<UserActivity> findByActivityDateAndTypeAndUserId(Date dt, String type,
long id);
}
当我在 repo 上使用 findByActivityDateAndTypeAndUserId 方法时,我注意到第二个实例的 JSON 响应不返回父级。但是作为用户信息的第一个活动。不知何故,响应截断了数组第二条记录中的父对象。这是相同的响应。
0: {
id: 31
activityDate: "2020-01-29"
start: "2020-01-29T20:34:54.000-0500"
end: "2020-01-29T20:34:54.000-0500"
type: "CHECK_IN"
notes: "CHECK_IN"
user: {id: 92, username: "xyz@gmail.com", firstName: "x", y: "m",…}
1: {
id: 32
activityDate: "2020-01-29"
start: "2020-01-29T20:34:55.000-0500"
end: "2020-01-29T20:34:55.000-0500"
type: "CHECK_OUT"
notes: "CHECK_OUT"
user: 2
}
请参阅用户字段数组中的第二项,这就是问题所在。任何帮助都非常感谢。谢谢你!
解决方案
推荐阅读
- python - 如何使用 OpenImages 数据集在 Keras 中训练二进制模型
- python - 混淆使用 __next__ 和 __iter__ 单独的一个代码
- php - 如何检查文件是否上传PHP
- wso2esb - 在 WSO2 中发送电子邮件会添加虚假的正斜杠,导致错误 401003
- excel - 将 VBA 宏应用于后续行
- macos - Chromium 构建中的 GL_VENDOR 和 GL_RENDERER 不正确
- docker - 当 Docker 容器中托管的 asp.net 核心应用程序时,JS 和 CSS 无法在浏览器中加载
- sass - Kendo Angular SASS Builder:颜色
- jenkins - 无法访问文件 .vmtx(Jenkins 插件 vSphere Cloud)
- react-native - 启动应用程序的反应原生问题