当前位置: 首页 > 知识库问答 >
问题:

Java Spring Hibernate“无法添加或更新子行”

张通
2023-03-14

com.mysql.jdbc.exceptions.jdbc4、无法添加或更新子行:外键约束失败(ravermeisterartist_recordlabel,CONSTRAINTFK_9dgdyft45droyopxsqijwb1dxFOREIGN KEY(artist_id)REFERENCES艺术家id))

艺术家班

@Entity
@Repository
@Data
@NoArgsConstructor(force = true)
public class Artist {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "artist_firstname")
    private String artist_firstname;

    @Column(name = "artist_secondname")
    private String artist_secondname;

    @Column(name = "artist_nickname")
    private String artist_nickname;


    @ManyToMany (fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name = "artist_recordlabel", joinColumns = @JoinColumn(name = "artist_id"),
            inverseJoinColumns = @JoinColumn(name = "label_id"))
    private Set<RecordLabel> recordLabels;

    @ManyToMany (fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable (name = "artist_musicrelease", joinColumns = @JoinColumn (name = "artist_id"),
    inverseJoinColumns = @JoinColumn (name = "musicrelease_id"))
    private Set <MusicRelease> musicReleaseSet;

和RecordLabel类

@Entity
@Repository
@Data
@NoArgsConstructor(force = true)
public class RecordLabel {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "label_name")
    private String label_name;

    @Column(name = "label_country")
    private String label_country;

    @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name = "artist_recordlabel", joinColumns = @JoinColumn(name = "label_id"),
            inverseJoinColumns = @JoinColumn(name = "artist_id"))
    private Set<Artist> artistsList;

共有2个答案

翟宏放
2023-03-14

我认为这个错误意味着您试图将艺术家表中不存在的artist_id值插入/更新到RecordLabel表中。

逄嘉熙
2023-03-14

请按照本指南进行多对多关系

http://www.baeldung.com/hibernate-many-to-many

 类似资料:
  • 我已经看到了这个答案,并且正在使用它所建议的解决方案,但仍然得到相同的错误。 我有一个对用户表有外键约束的代理表,这是代理表: 这是我的实体: 现在,我想为现有用户添加一个新代理: <代码>\u上下文。SaveChanges() 行引发以下异常: "无法添加或更新子行:外键约束失败(\"dbName\".\"agent\", CONSTRAINT\"FK_Agency_User\"FOREIGN

  • com.mysql.jdbc.exceptions.jdbc4.mysqlintegrityConstraintViolationException:无法添加或更新子行:外键约束失败(.,constraint外键()引用()

  • 我有两个表,当我试图保存通常的实体,扔 组织。springframework。刀。DataIntegrityViolationException:无法添加或更新子行:外键约束失败(,约束外键(,)引用(,));SQL[n/a];约束[null];嵌套的异常是org。冬眠例外ConstraintViolationException:无法添加或更新子行:外键约束失败(,constraint外键(,)参

  • 问题内容: 当我不想相互连接两个表时,我得到以下消息:#1452-无法添加或更新子行:外键约束失败....我想从facebook_users表格中连接oauth_uid2(主键)外键为oauth_uid2的错误列表。但是我总是得到这个信息。我已经清除了数据,但没有任何效果。在表users_facebook中,我还有1条记录。 1452-无法添加或更新子行:外键约束失败(。,在更新级联上删除级联时使

  • 我知道在这个问题上有很多问题,但我一直未能解决。我正在做一个图形界面来添加/删除员工和管理缺勤。 我一直在阅读和测试那些建议stackOverflow1,但我不能更改数据库,因为它已经由我们的教授给出了。 来自外键的值已经在表“service”中,我在代码中称之为“department”。 我有以下数据库(对于我得到问题的表): 在应用程序中,您可以看到这里和下面的图片,我必须修改员工数据,并将其

  • 当我不想将两个表相互连接时,我收到消息:#1452 - 无法添加或更新子行:外键约束失败....我想使用外键oauth_uid2将oauth_uid2(主键)从facebook_users选项卡连接到错误选项卡。但我总是收到这个信息。我已经清除了我的数据,但没有任何效果。同样在表中users_facebook我有 1 条记录。 1452-无法添加或更新子行:外键约束失败(., CONSTRAINT