Hibernate:外键必须与主键具有相同的列数

时间:2015-07-28 13:57:50

标签: java hibernate one-to-many hibernate-onetomany

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

@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表中的所有列。

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

0 个答案:

没有答案