Java 映射由两个外键组成的主键?冬眠

Java 映射由两个外键组成的主键?冬眠,java,hibernate,foreign-keys,primary-key,Java,Hibernate,Foreign Keys,Primary Key,我有3个等级的玩家(PK Id_玩家),匹配(PK Id_玩家)和铭文(PK应该是Id_玩家和Id_玩家)。一个玩家只有一个铭文(1个玩家->1个铭文),一个匹配可以有多个铭文(1个匹配->多个铭文)。所以表铭文有两个foreig键Id_player和Id_match,问题是我不知道如何告诉hibernate这两个foreig键必须是表铭文的组合primarey键。这是我的代码:: @Entity @Table(name = "Players") public class Player{

我有3个等级的玩家(PK Id_玩家),匹配(PK Id_玩家)和铭文(PK应该是Id_玩家和Id_玩家)。一个玩家只有一个铭文(1个玩家->1个铭文),一个匹配可以有多个铭文(1个匹配->多个铭文)。所以表铭文有两个foreig键Id_player和Id_match,问题是我不知道如何告诉hibernate这两个foreig键必须是表铭文的组合primarey键。这是我的代码::

@Entity

@Table(name = "Players")

public class Player{

    @Id @GeneratedValue
private Long Id_player;

@OneToOne
@JoinColumn(name = "payer_id")
Inscription Inscription;}

@Entity
@Table(name="Matches")
public class Match{

    @Id @GeneratedValue
    private long Id_match;

    @OneToMany
    @JoinColumn(name = "id_match")
    List<Inscription> inscriptions= new ArrayList<>();
@实体
@表(name=“Players”)
公开课选手{
@Id@GeneratedValue
私人长Id_播放器;
@奥内托内
@JoinColumn(name=“付款人id”)
铭文;}
@实体
@表(name=“Matches”)
公开课比赛{
@Id@GeneratedValue
私人长Id_匹配;
@独身癖
@JoinColumn(name=“id\u匹配”)
列表铭文=新的ArrayList();
我应该在铭文课上写些什么才能让这两个Fk都成为一个组合PK。谢谢检查:

玩家

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity

@Table(name = "Players")

public class Player {

    @Id
    @GeneratedValue
    private Long Id_player;

    @OneToOne
    private Match match;

}
匹配

import java.util.List;
导入javax.persistence.Entity;
导入javax.persistence.GeneratedValue;
导入javax.persistence.Id;
导入javax.persistence.JoinColumn;
导入javax.persistence.JoinTable;
导入javax.persistence.OneToMany;
导入javax.persistence.Table;
@实体
@表(name=“Matches”)
公开课比赛{
@Id@GeneratedValue
私人长Id_匹配;
@独身癖
@JoinTable(name=“铭文”,
joinColumns=@JoinColumn(name=“MATCH_ID”),
inverseJoinColumns=@JoinColumn(name=“PLAYER\u ID”))
私人名单玩家名单;
公共长getId_匹配(){
返回Id_匹配;
}
公共无效设置id_匹配(长id_匹配){
Id\u匹配=Id\u匹配;
}
公共列表getPlayerList(){
返回玩家列表;
}
public void setPlayersList(列表playersList){
this.playersList=playersList;
}
}
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="Matches")
public class Match{

    @Id @GeneratedValue
    private long Id_match;

    @OneToMany
    @JoinTable(name="Inscription",
    joinColumns=@JoinColumn(name="MATCH_ID"),
    inverseJoinColumns=@JoinColumn(name="PLAYER_ID"))
    private List<Player> playersList;


    public long getId_match() {
        return Id_match;
    }

    public void setId_match(long id_match) {
        Id_match = id_match;
    }

    public List<Player> getPlayersList() {
        return playersList;
    }

    public void setPlayersList(List<Player> playersList) {
        this.playersList = playersList;
    }


}