请注意,以下表格仅作为示例,因为我不能分享实际的表格。 例: 我有两个表(用户,事件)和两个映射表(user_event_map)。 用户:具有(user_id,org_id)的复合主键 事件:具有(event_id,org_id)的复合主键
现在,我应该在映射表user_event_map中的两个表上方进行映射。 user_event_map字段:
user_event_map_id
user_id
event_id
org_id
我尝试如下:
@Entity
@Table(name = "user_event_map")
public class UserEventMap{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_event_map_id")
private Long userEventMapId;
@ManyToOne
@JoinColumns({ @JoinColumn(name = "user_id", referencedColumnName = "user_id"),
@JoinColumn(name = "org_id", referencedColumnName = "org_id") })
private UserType userType;
@ManyToOne
@JoinColumns({ @JoinColumn(name = "event_id", referencedColumnName = "event_id"),
@JoinColumn(name = "org_id", referencedColumnName = "org_id") })
private Event event;
......
}
我收到如下异常:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity:
如果我按以下方式更改了映射(又添加了一个org_id):
user_event_map_id
user_id
event_id
user_org_id
event_org_id
它按预期工作。
我只想在映射表中使用一个org_id并将其用于2个表的外键。
user_event_map_id
user_id
event_id
org_id
我能够如上所述创建表,但是无法在Spring Data JPA实体中对其进行配置。
有什么办法吗?