所以我跟随https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/与一个额外的列建立了多对多的时间戳。
因此,我的用户和任务已链接到usertask表,但是我无法弄清楚如何获取用户任务列表。
我已经尝试过用这种方法对getter进行迭代:
for(UserTask usertask : user.getTasks())
{
tasks.add(usertask.getTask());
}
这样做为我提供了一个“在路径为[]的上下文中用于servlet [dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套的异常为org.springframework.http.converter.HttpMessageConversionException:类型定义错误” < / p>
来自用户的代码
@JsonIgnore
@OneToMany(
mappedBy = "user",
cascade = CascadeType.MERGE,
orphanRemoval = true
)
private List<UserTask> tasks = new ArrayList<>();
任务代码
@JsonIgnore
@OneToMany(
mappedBy = "task",
cascade = CascadeType.MERGE,
orphanRemoval = true
)
private List<UserTask> users = new ArrayList<>();
UserTask实体中的代码
@EmbeddedId
private UserTaskId id;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("username")
private ApplicationUser user;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("taskName")
private Task task;
@Column(name = "timestamp")
private long timestamp;
private UserTask() {
}
我想放入用户,然后返回与用户相关的任务列表。但是无论如何我都会出错。