第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Spring boot刪除不是級(jí)聯(lián)的,它是將外鍵設(shè)置為null,然后在空約束上失敗

Spring boot刪除不是級(jí)聯(lián)的,它是將外鍵設(shè)置為null,然后在空約束上失敗

米琪卡哇伊 2024-01-28 16:43:36
在Spring Boot中使用deleteById與一對(duì)多關(guān)系生成的查詢嘗試將引用實(shí)體中的外鍵設(shè)置為null,而不是刪除它們。我正在使用默認(rèn)存儲(chǔ)庫(kù)deleteById我已在實(shí)體中的外鍵定義中將 Cascadetype 設(shè)置為 ALL,將 OrpahnRemoval 設(shè)置為 true,并在創(chuàng)建表的 DDL 中設(shè)置 ON DELETE CASCADE。這里是controller類中的刪除操作@Transactional@DeleteMapping("transferImage/{imageId}")public void  deleteTransferImage(@PathVariable int imageId) {    repository.deleteById(imageId);}這是從父實(shí)體到子實(shí)體的引用@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, OrphanRemoval = true)@JoinColumn(name = "TRANSFER_IMAGE_ID")private List<TransferPartition> partitions = new ArrayList<>();這是子實(shí)體中外鍵的定義@JsonIgnore@ManyToOne@JoinColumn(name = "TRANSFER_IMAGE_ID", referencedColumnName = "TRANSFER_IMAGE_ID")private TransferImage image;這是用于創(chuàng)建兩個(gè)表的 DDLCREATE TABLE TRANSFER_IMAGE (TRANSFER_IMAGE_ID       SERIAL CONSTRAINT TRANSFER_IMAGE_PK PRIMARY KEY,IMAGE_NAME              VARCHAR(50) CONSTRAINT TRANSFER_IMAGE_NAME_UK UNIQUE NOT NULL ,REQUESTED_PART_SIZE_MB  INTEGER NOT NULL,SIZE_BYTES              INTEGER NOT NULL,IMAGE_MD5_HASH          VARCHAR(100),NUMBER_PARTITIONS       INTEGER,DELETED                 BOOLEAN  NOT NULL);CREATE TABLE TRANSFER_PARTITION (TRANSFER_PARTITION_ID   SERIAL CONSTRAINT TRANSFER_PARTITION_PK PRIMARY KEY,TRANSFER_IMAGE_ID       INTEGER NOT NULL CONSTRAINT TRANSFER_PARTITION_IMAGE_FK REFERENCES TRANSFER_IMAGE ON DELETE CASCADE ON UPDATE CASCADE,PARTITION_NUMBER        INTEGER NOT NULL,PARTITION_MD5_HASH      VARCHAR(100) NOT NULL,SIZE_BYTES              INTEGER NOT NULL);
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

您的問(wèn)題在于 TransferImage 類中外鍵關(guān)系的定義。


代替


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, OrphanRemoval = true)

@JoinColumn(name = "TRANSFER_IMAGE_ID")

private List<TransferPartition> partitions = new ArrayList<>();

你應(yīng)該使用


@OneToMany(mappedBy="image", cascade = CascadeType.ALL, fetch = FetchType.EAGER, OrphanRemoval = true)

private List<TransferPartition> partitions = new ArrayList<>();

查看完整回答
反對(duì) 回復(fù) 2024-01-28
  • 1 回答
  • 0 關(guān)注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)