1

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)
);
Inspi
  • 530
  • 1
  • 4
  • 19

0 Answers0