我有以下两个类(这有点简化):
@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对象?