簡體   English   中英

JPA 映射,多對多,在關系表中增加一列

[英]JPA mapping, many to many with one extra column in the relation table

我有 3 個 sql 表:

Account (ID (BIGINT),...)
Card (ID (BIGINT),...)
RelationAccountCard (ACCOUNT (BIGINT), CARD(BIGINT), QUANTITY(int))

一戶多卡,一卡多戶

@Data
@Entity
public class Account {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @ManyToMany
    @JoinTable(
        name = "RELATION_ACCOUNT_CARD",
        joinColumns = @JoinColumn(name = "ACCOUNT"),
        inverseJoinColumns = @JoinColumn(name = "CARD"))
    private Set<Card> cardsOwned = new HashSet<>();
}


@Data
@Entity
public class Card {

    @Id
    private long id;

    @JsonIgnore
    @ManyToMany(mappedBy = "cardsOwned")
    private java.util.Set<Account> accounts;
}

如果relationAccountCard 中的“QUANTITY”字段不存在,則上面的代碼有效。 知道我添加了“QUANTITY”字段后,我想讓代碼正常工作。 我昨天試了幾個小時沒有成功,你知道怎么做嗎?

基本上我需要替換private Set<Card> cardsOwned; 通過private Set<RelationAccountCard> relationAccountCards; 但我不知道怎么做

解決方案是刪除復合主鍵。 使(卡,帳戶)唯一,並添加一個 ID。

完成后,我只是按照這個 stackoverflow 帖子的答案:

使用額外列映射多對多關聯表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM