1 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
這些關(guān)系是“派生身份”;因此您的 ID 類應(yīng)如下所示(請(qǐng)注意外鍵字段的類型與其相應(yīng)實(shí)體字段的類型不同):
public class ReviewId implements Serializable {
? ? private static final long serialVersionUID = 1L;
? ? private String reviewer; // matches name of @Id attribute and type of User PK
? ? private Long reviewedAlbumId;
? ? // ...
}
public static class VoteId implements Serializable {
? ? private static final long serialVersionUID = 1L;
? ? private String voter; // matches name of @Id attribute and type of User PK
? ? private ReviewId review; // matches name of @Id attribute and type of Review PK
? ? // ...
}
JPA 2.2 規(guī)范的第 2.4.1節(jié)討論了派生身份(并附有示例)。
另外,作為旁注,@IdClass
它有點(diǎn)老派,但@EmbeddedId
更干凈,消除了實(shí)體及其密鑰中重復(fù)的代碼。
添加回答
舉報(bào)