亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ManyToMany 關系上的 PostgreSQL 約束違規錯誤,但應該存在外鍵

ManyToMany 關系上的 PostgreSQL 約束違規錯誤,但應該存在外鍵

茅侃侃 2024-01-17 20:45:51
我正在嘗試建立一個與此處顯示的系統非常相似的系統:https://vladmihalcea.com/the-best-way-to-use-the-manytomany-annotation-with-jpa-and-hibernate/PostgreSQL 模式的設置方式與下面所示的內容類相同,映射到具有 content_id 和 tag_id 的表中的標記類,這兩個表在各自的表上具有外鍵約束。我遇到的問題是,當嘗試保留新的內容對象時,我正在檢查該對象的標簽是否存在,如果存在,我將使用 addTag 方法添加它們,然后保留該對象。否則,我創建它們并保留該對象。下面還顯示了執行此操作的 POST 方法。存儲庫成功找到標簽,因為它們已經被持久化,但是當我嘗試持久化內容時出現以下錯誤:org.postgresql.util.PSQLException:錯誤:在表上插入或更新"content_tag" violates foreign key constraint "tag_id_fkey"   Detail: Key (tag_id)=(11) is not present in table "tag".我單步執行代碼,當使用 addTag 方法將標簽添加到內容中時,它顯示它們的 id 與數據庫中已有的標簽匹配,所以我不明白為什么當我保留內容時它是一個不同的 id。有誰知道我如何才能防止這種情況發生并讓內容持續有效?
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

問題是下面的注釋。

@JoinTable(name = "content_tag",
        joinColumns = @JoinColumn(name = "content_id"),
        inverseJoinColumns = @JoinColumn(name="tag_id")
)

joinColumns 和 inverseJoinColumns 顛倒了


查看完整回答
反對 回復 2024-01-17
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號