Sac*_*tus 1 mysql spring hibernate jpa one-to-one
当我添加带有 id 的职位查询,将它们添加到 Employee 实体中设置的职位并保存 Employee 实体时,出现此错误
2020-02-29 18:01:53.689 WARN 18280 --- [nio-8083-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError]
2020-02-29 18:01:53.692 WARN 18280 --- [nio-8083-exec-2] o.h.e.loading.internal.LoadContexts : HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@52efd6dc<rs=HikariProxyResultSet@690866176 wrapping Result set representing update count of 2>
2020-02-29 18:01:53.692 WARN 18280 --- [nio-8083-exec-2] o.h.e.loading.internal.LoadContexts : HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@4d7d18da<rs=HikariProxyResultSet@2035306242 wrapping Result set representing update count of -1>....
.....
Run Code Online (Sandbox Code Playgroud)
员工实体
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH, CascadeType.REFRESH}, fetch = FetchType.LAZY)
@Fetch(value= FetchMode.SELECT)
@JoinTable(name = "employees_jobs",
joinColumns = @JoinColumn(name = "employee_id"),
inverseJoinColumns = @JoinColumn(name = "job_id"))
Run Code Online (Sandbox Code Playgroud)
工作实体
@ManyToMany(mappedBy = "jobs")
private Set<Employee> employees = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)
提前致谢!
解决了!这是 Lombok 引起的问题。我删除了@Data注释并添加了
@ToString(exclude = "listName")
Run Code Online (Sandbox Code Playgroud)
在实体类之上。Lombok生成的ToString方法是stackoverflow错误的原因
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |