今天使用Spring Data JPA新增資料進PRODUCT
資料表時出現錯誤Oracle ORA-02291 integrity constraint FK_PRODUCT_MEMBER_ID violated - parent key not found
錯誤。
簡單來說問題是因為新增至外鍵(foreign key)的值在其參照的主鍵(primary key)資料表中找不到對應的值。
查了一下FK_PRODUCT_MEMBER_ID
為資料表PRODUCT
的外鍵限制(foreign key constraint)設定如下。
PRODUCT
CREATE TABLE PRODUCT (
ID NUMBER(19) NOT NULL,
MEMBER_ID NUMBER(19) NOT NULL, -- FK, references to MEMBER.ID
...
CONSTRAINT FK_PRODUCT_MEMBER_ID FOREIGN KEY (MEMBER_ID) REFERENCES MEMBER (ID)
);
錯誤的原因是因為新增實體類(entity)Product
的memberId
的值在MEMBER
的ID
並不存在該筆資料。
例如新增進PRODUCT.MEMBER_ID
的memberId
值為100,但MEMBER.ID
並沒有100這筆資料,又因為外鍵限制導致Oracle ORA-02291錯誤。
解決方法就是如果資料表有外鍵限制,新增資料時確認資料必須存在所參照外鍵的該資料表中。
參考:
沒有留言:
張貼留言