传递给分离的实体在POST时保持不变

时间:2016-03-11 18:14:16

标签: java mysql spring hibernate rest

正如我在此问题中所述,我尝试在两个表之间添加联接:Adding table joins to existing project causes infinite recursion

但是现在我收到了一个新错误:

detached entity passed to persist: sample.todosapp.spring.domain.User] with root cause

当我尝试调用此代码时(这是我的REST控制器中POST的修改方法):

    @RequestMapping(method = POST)
@ResponseStatus(HttpStatus.CREATED)
public Callable<Todo> post(@RequestBody Todo todo) {
    User u = userService.findBySso(SecurityContextHolder.getContext().getAuthentication().getName());

    todo.setUser(u);
    return () -> todoRepository.save(todo);
}

如何在POST期间添加联接?

2 个答案:

答案 0 :(得分:1)

从关系中删除 cascade = CascadeType.ALL JPA @ManyToOne with CascadeType.ALL

答案 1 :(得分:0)

这与POST没有关系。

它是一个hibernate异常,并且异常的原因是你试图保持的实体对象不在持久状态。

  1. Spring JPA - &gt;请检查启用的事务管理器 持久化JPA配置文件。转换方法应该是 用@Transactional表示法标记。

    1. 确保您没有在PersistenceContext中已经存在的其他实体中存在/使用的相同ID(主键)。