当前位置: 首页 > 知识库问答 >
问题:

Hibernate一对多关系

吴正祥
2023-03-14

我在hibernate中搜索建立关系的各种可能性,遇到了下面的代码片段

@Entity
@Table(name="patient")
class Patient {

    @OneToMany
    @JoinColumn
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
@Table(name="vehicle")
class Vehicle {

}

共有1个答案

鄢修德
2023-03-14

是的,您可以在Patient实体中添加@JoinColumn,它将引用Patient类中的列,而不是Vehicle类中的列,例如Vehicle表:

|  id   |  patient_id |
|   1   |    1        |
|   2   |    1        |



@Entity
@Table(name="patient")
class Patient {
    @OneToMany
    @JoinColumn(name="patient_id")
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
@Table(name="vehicle")
class Vehicle {
    @Column(name="patient_id")
    private Integer patientId;
}
 类似资料:
  • 我有两个表,ComputerNode和Connection。ComputerNode有一个主键< code>nodeid,但连接没有主键。我无法修改表模式。如果它们有一对多的关系,我应该如何创建java POJO?基本上我的目标是做一个像这样的内部连接: 下面是 SQL 表架构。计算机节点表: 连接表: 表之间的关系是一对多的。一个计算机节点可以有多个连接 我已经创建了两个Java的POJO类,但

  • 我正在学习冬眠,只是有点困惑。

  • 我有两个类:< code>User和< code>UserProfile。 用户类别: 用户配置文件类: 当我使用此代码时,我在具有多对多关系的表用户配置文件中获得重复的实体。我使用 函数来保存对象。我做错了什么? 然后我删除 cascadeType,出现错误:对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。 Hibernate日志:

  • 我试图使用Hibernate标准来选择,使用多对多关系中相关的表。n-m表有一些附加列,而不仅仅是每个表的ID。 java.lang.IllegalArgumentException:无法在此ManagedType[User]上找到具有给定名称[UserRolesList.Role]的属性 我已经为这种情况尝试了许多选择,比如加入,但仍然无法使其工作。

  • 问题内容: 我有一对一的关系,但是hibernatetool在生成模式时抱怨。这是显示问题的示例: 人与OtherInfo具有一对一关系: 人是OtherInfo的拥有方。OtherInfo是拥有方,因此person用于在Person中指定属性名称“ otherInfo”。 使用hibernatetool生成数据库架构时出现以下错误: 知道为什么吗?我是在做错什么还是这是Hibernate错误?

  • 如果在中只有一组,这将非常好地工作。ASSESSMENT_COMMENT只有两列: 它将完美地代表一对多的关系。 现在问题来了: 那么,1)这是Hibernate中已知的bug吗?2)有办法解决这个问题吗?我可以强制Hibernate创建两个映射表,每个映射表一个吗?请记住,我不能更改类来引用(业务逻辑需求)