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

违反完整性约束-在级联上找不到父项

余弘新
2023-03-14

当我试图用级联保存所有一个实体时,它会返回错误,该实体内部有一个集合,设置为“OneTo多项”。

错误:

o.h.engine.jdbc.spi.SqlExceptionHelper:SQL错误:2291,SQLState:23000o.h.engine.jdbc.spi.SqlExceptionHelper:ORA-02291:完整性约束(MACHINE.OFFICER_FK)被破坏-找不到父密钥

@Entity(name = "GenInfo")
@Table(name = "GEN_INFO")
public class GenInfo {

    @Id
    @GeneratedValue(generator = "GEN_INFO_SEQ")
    @Column(name = "ID_GEN_INFO")
    Long id;

    @Column(name = "STREET_ADDRESSS")
    String streetAddress;

    @Column(name = "CITY")
    String city;

    @Column(name = "STATE_REGION")
    String stateOrRegion;

    @Column(name = "POSTAL_CODE")
    String PostalCode;

    @Column(name = "COUNTRY")
    String Country;

    @Column(name = "CONTACT_NAME")
    String ContactName;

    @Column(name = "CONTACT_TITLE")
    String ContactTitle;

    @OneToMany(mappedBy = "genInfo", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
    List<Officer> officerCollection;

}

@Entity(name = "Officer")
@Table(name = "OFFICER")
public class Officer {

    @Id
    @GeneratedValue(generator = "OFFICER_SEQ")
    @Column(name = "ID_OFFICER")
    Long id;

    @Column(name = "OFFICER_NUM")
    String officerID;

    @Column(name = "PERSON_ID")
    String personID;

    @Column(name = "OF_RANK")
    String rank;

    @Column(name = "STATUS")
    String status;

    @Column(name = "TITLE")
    String LongTitle;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ID_GEN_INFO")
    private GenInfo genInfo;
}

这是包含一些Hibernate信息的日志

Hibernate: insert into gen_info (contact_name, contact_title, country, postal_code, city, state_region, street_addresss, id_gen_info) values (?, ?, ?, ?, ?, ?, ?, ?)
o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - []
o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [VARCHAR] - []
o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [VARCHAR] - [France]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [4] as [VARCHAR] - [92085]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [5] as [VARCHAR] - [PARIS]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [6] as [VARCHAR] - []
o.h.type.descriptor.sql.BasicBinder      : binding parameter [7] as [VARCHAR] - [Tour W, 102 terrasse Boieldieu]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [8] as [BIGINT] - [11]
Hibernate: insert into officer (title, id_gen_info, officer_num, person_id, of_rank, status, id_officer) values (?, ?, ?, ?, ?, ?, ?)
o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - [Chairman of the Board]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [BIGINT] - [11]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [VARCHAR] - [1597265]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [4] as [VARCHAR] - [250881]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [5] as [VARCHAR] - [1]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [6] as [VARCHAR] - [Both]
o.h.type.descriptor.sql.BasicBinder      : binding parameter [7] as [BIGINT] - [135]
o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 2291, SQLState: 23000
o.h.engine.jdbc.spi.SqlExceptionHelper   : ORA-02291: integrity constraint (MACHINE.OFFICER_FK) violated - parent key not found

共有1个答案

仲俊豪
2023-03-14

似乎您在名为officer的表和名为officer\u id的列中持有gen\u info表的contact\u name列的父键信息,并试图在gen\u info中插入一个与officer没有匹配值的值。警官身份证

 类似资料:
  • 我试图为和创建会话,这两个表都与相同的外键关联到登录表-但是当我为创建种子时,我得到了错误,在我的另一个问题在这个链接中,我没有以最好的方式解释,但得到了一些关于使用(党-角色-关系模型)和这段代码下面他更多的想法有关已解决的问题链接 创建表和主键 创建表和主键 创建表以及主键和外键 使用表为管理员创建会话的过程: 使用表为用户创建会话的过程: 创建管理会话时,我收到一个错误 我做错了什么?

  • 问题内容: 嗨,我正在Oracle SQL开发人员中开发数据库,​​试图从另一个表访问foriegn键。我目前正在使用以下CREATE语句创建的ItemOrdered表 如您所见,我具有以下前键Ords和BeltID。 现在,当我尝试运行以下语句时 它给了我以下错误 违反-找不到父密钥02291。00000-“违反完整性约束(%s。%s)-找不到父密钥” 如果需要,我已经提供了Ords CREAT

  • 我得到了“完整性约束(SYSTEM。FK_FACILITY)违反了父密钥未找到”错误,尽管主键在上一个表中已经明确定义。 我的确切错误是 我只想将值添加到表中,但我无法这样做。。。如果有人能帮我,那就太好了!

  • 我最近正在了解这一点,我想知道我是否可以帮助自己,这里是我的数据库: 插入值

  • 我遇到了一些SQL外键的问题。 下面是我的表和插入SQL。 SQL ORA-02291:违反完整性约束-未找到父键 我不知道为什么我的外键是错的?

  • 将实体插入数据库时遇到问题。我正在使用HibernateJPA。 我有表提醒和提醒行动和每个提醒将保持当前状态的提醒行动(即。OneToOne)和交易结束每个提醒将有许多提醒操作(具有不同的状态)。 在saveOrUpdate期间,hibernate从DB获取提醒和提醒操作的顺序 但是在flush()期间,Hibernate尝试首先插入ReminderAction,并且由于ReminderActi