0

我有以下两个类(这有点简化):

@Entity
@Table(name = 'DETAILS')
class Details
{
  // Properties
  @Id @Column(name = 'ID') Integer id
  @Id @Column(name = 'ID2') String secondaryId
  @Id @Column(name = 'FIRST_NAME') String firstName
  @Id @Column(name = 'LAST_NAME') String lastName
  @Id @Column(name = 'CHANGE_TYPE') String changeType
}


@Entity
@Table(name = 'USERS')
class User
{
  // Properties
  @Id @Column(name = 'ID') Integer id
  @Column(name = 'ID2') String secondaryId
  @OneToMany @JoinColumn(name = 'ID') List<Details> details
}    

User TABLE 包含用户的 ID 信息并引用包含有关用户的实际详细信息的 DETAILS 表。Details 类有一个复合键,而 User 类只有一个键字段,它的这个键字段用于连接以从 DETAILS 表中获取所有列。

不幸的是,这会导致“外键必须具有与引用的主键相同的列数”错误。显然我在这里遗漏了一些东西。如果我要使用 Details 类的所有键来加入,那么它将导致一对一映射而不是一对多映射。如何设置它以便 User 类可以包含所有具有相应 ID 的 Details 对象?

4

0 回答 0