提问人:user3859651 提问时间:7/13/2023 更新时间:8/4/2023 访问量:44
hibernate @embeddedid 中的相同表@manytoone引用
hibernate Same table @manytoone reference in @embeddedid
问:
我正在尝试创建一个名为 Category 的实体。类别是多级的,例如: 我可以有一个名称为食物的类别,这是顶级的。然后我可以再有 2 个类别:蔬菜和肉类。这应该表示的方式在单个表中,如下所示:
名字 | 父母 |
---|---|
食物 | 零 |
蔬菜 | 食物 |
肉 | 食物 |
每个父项的名称必须是唯一的,例如,我不能有另一个名称=蔬菜和父项=食物。 我正在尝试使用@EmbeddedId来做到这一点:
@Embeddable
@Data
@NoArgsConstructor
public class CategoryId implements Serializable {
private String name;
@ManyToOne
@JoinColumn(name = "parent_name", referencedColumnName = "id")
@JoinColumn(name = "parent_parent", referencedColumnName = "id")
private Category parent;
}
.
@Table(name = "category")
@Entity
@Data
public class Category {
@EmbeddedId
private CategoryId id;
}
这给了我以下例外: org.hibernate.AnnotationException:涉及下表的外键循环依赖:category、category
有没有人有办法在休眠中实现这一目标?
答:
0赞
Maksim Eliseev
7/25/2023
#1
为了展示这种能力,我在我的github上发布了一个工作示例。我花了一段时间。我希望这个例子对你有用。如果您有任何问题,请告诉我。
评论