So, I already implemented composite foreign keys like:
@Embeddable
class Participant (
@ManyToOne
var event: Event,
@ManyToOne
var people: People,
): Serializable
@Embeddable
class Proposition (
@ManyToOne
var event: Event,
@ManyToOne
var place: Place,
): Serializable
I know how to make a foreign key reference multiple columns from this answer https://stackoverflow.com/a/38066509/8915326
@ManyToOne
@JoinColumn(name="gameid", referencedColumnName = "gameid", insertable = false, updatable = false ),
@JoinColumn(name="groupTag", referencedColumnName = "grouptag", insertable = false, updatable = false)
private Group group;
But how can I write a table with 2 composite foreign keys that have a column in common ?
In my case I want to express something like this
create table if not exists place_vote (
event varchar(60),
place varchar(60),
participant varchar(60),
grade event not null,
foreign key (event, place) references place_entry(event, place),
foreign key (event, participant) references participation(event, participant),
primary key (event, place, participant)
);