有没有办法从多对多表中获取数据?

时间:2019-03-26 13:48:48

标签: java hibernate spring-boot spring-data-jpa many-to-many

所以我跟随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() {
}

我想放入用户,然后返回与用户相关的任务列表。但是无论如何我都会出错。

0 个答案:

没有答案