J'ai 2 tables que je veux joindre sur PK et FK en JPA, mais le PK est en majuscule et le minuscule FK. Comment faire correspondre l'association insensible à la casse entre Person -> GroupAssociationEntity?Joindre la table sur la case insensible PK et FK avec JPA
Mon mappage actuel ne fonctionne pas.
@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;
......
}
Il n'y a pas de champ 'memberOf' dans la classe Person. Lorsque vous utilisez '@ JoinColumn' sur une classe, ils doivent en avoir un champ. – msagala25
Il ne doit pas être. 'memberOf' est juste une colonne dans la table des liens. –