是否可能有一个复合主键,哪些组件是实体外键?



我有以下模型:

(...)
@IdClass(BetID.class)           //Primary Key, composite = userID+gameID
public class Bet {
(...)
//Primary Key
@ManyToOne
@Id
private User user;          //Composite key:userID
@ManyToOne
@Id
private Game game;          //Composite key:gameID

,其中当然有以下组合键:

public class BetID implements Serializable {
@OneToOne
private User user;
@OneToOne
private Game game;

这里,User和Game是外键,也是实体。问题是,当我试图处理,所以我不能设置/获得关键像有一个正常的关键一样容易:@EmbeddedId BetID bet id,因为id必须引用Bet中的2个属性。所以使用@ getter和@ setter (lombok)是不可能的。那么,我该如何处理呢?有这样一把钥匙吗?

您可以添加setter与两个参数:

public void setBetID(User user, Game game) {
this.betId = new BetID(user, game);
}

最新更新