我正在尝试解决有关同一实体的子类别和父类别的类别的问题。我的数据库已设置好,我无法更改。所以,我用这种方式映射了我的实体:
public class Category implements Serializable {
private static final long serialVersionUID = -3432724244623524272L;
@Id
@Column(name = "id")
private Long id;
@Column(name = "key", nullable = false)
private String key;
@Column(name = "category_name", nullable = false)
private String name;
@Column(name = "description")
private String description;
@ManyToOne(targetEntity = Category.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "parent_key", referencedColumnName = "key")
private Category parentCategory;
@OneToMany(mappedBy = "parentCategory", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Category> childCategories;
//getters and setters ommited
}
请注意,子类别和父类别未使用ID属性进行映射,但是&#34;键&#34;属性。这个&#34;关键&#34;不是FK。当JPA试图获取数据时,我的应用程序崩溃了。但这次崩溃看起来像一个无限循环。没有例外。
我做错了什么?
答案 0 :(得分:0)
可能的无限循环:
FetchType.EAGER
尝试使用FetchType.LAZY
。