gpt4 book ai didi

java - JPA - OneToMany, ManyToOne, OneToOne 问题

转载 作者:行者123 更新时间:2023-12-03 18:41:49 24 4
gpt4 key购买 nike

给定以下两个实体:

class Parent {
@OneToMany(cascade=CascadeType.ALL)
private Set<Child> children;

(...)
}


class Child {
@ManyToOne
private Parent parent;

(...)
}

我想要数据库中的两个表。一张给 parent ,另一张给 child 。但是 Hibernate 创建了三张表:一张给 parent ,一张给 child ,一张用来加入他们(有两个字段的表)。

即使我将 @OneToOne 放在 Child 类的父属性上,我仍然会得到相同的结果。

我错过了什么?

最佳答案

mappedBy 属性添加到Parent 类中的@OneToMany。这使得 Child 成为拥有方。

Child 中,将 @JoinColumn 注释添加到 parent 字段,以便在子表中声明外键列名称。

来自 @OneToMany#mappedBy 上的 JavaDoc:

The field that owns the relationship. Required unless the relationship is unidirectional.

单向关系需要一个连接表,但在您的情况下它是双向的,因此它是必需的。

关于java - JPA - OneToMany, ManyToOne, OneToOne 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com