Java 映射由两个外键组成的主键?冬眠
我有3个等级的玩家(PK Id_玩家),匹配(PK Id_玩家)和铭文(PK应该是Id_玩家和Id_玩家)。一个玩家只有一个铭文(1个玩家->1个铭文),一个匹配可以有多个铭文(1个匹配->多个铭文)。所以表铭文有两个foreig键Id_player和Id_match,问题是我不知道如何告诉hibernate这两个foreig键必须是表铭文的组合primarey键。这是我的代码::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{
@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;
}
}