我正在尝试建立一个与此处显示的系统非常相似的系统:
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。有谁知道我如何才能防止这种情况发生并让内容持续有效?
动漫人物
相关分类