【发布时间】:2016-12-01 19:12:24
【问题描述】:
我有 2 个表要加入 JPA 中的 PK 和 FK,但 PK 是大写的,FK 是小写的。
如何在 Person -> GroupAssociationEntity 之间映射不区分大小写的关联?
我当前的映射不起作用。
@Entity
public class Person {
@Id
@Column(name = "id", columnDefinition = "nvarchar")
private String id;
@OneToMany(mappedBy = "person")
private List<GroupAssociationEntity> groups;
}
@Entity
@IdClass(GroupAssociationKey.class)
public class GroupAssociationEntity {
@Id
private String id;
@Id
private String memberOf;
@ManyToOne
@JoinColumn(name = "id", updatable = false, insertable = false, referencedColumnName = "id")
private Group group;
@ManyToOne
@JoinColumn(name = "memberOf", updatable = false, insertable = false, referencedColumnName = "id")
private Person person;
....
}
@Entity
public class Group {
@Id
@Column(name = "id")
private String id;
@OneToMany(mappedBy = "group")
private List<GroupAssociationEntity> persons;
......
}
【问题讨论】:
-
Person 类上没有
memberOf字段。当你@JoinColumn在一个类上时,他们需要有一个字段。 -
不必如此。
memberOf只是链接表中的一列。
标签: java hibernate jpa jointable