簡體   English   中英

嘗試從 hibernate 中與 cascadeType.ALL 的 OneToMany 關系中刪除時出現參照完整性約束違規

[英]Getting referential integrity constraint violation while trying to delete from OneToMany relation with cascadeType.ALL in hibernate

這是我要從中刪除的表的相關代碼:

/**
     * Liste der Aufgaben der Abgabe
     */
    @Setter
    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
    @JoinTable(
            name = "ABGABEAUFGABENZUORDNUNG",
            joinColumns = {@JoinColumn(name = "ABGABE")},
            inverseJoinColumns = {@JoinColumn(name = "AUFGABE")}
    )
    private List<Aufgabe> aufgaben = new ArrayList<>();

這些是我用於刪除和更新的 hibernate 函數:

@Override
    public void update(Abgabe abgabe) throws NullPointerException {
        HibernateUtil.execute(s -> s.update(abgabe));
    }

    @Override
    public void delete(Abgabe abgabe) {
        HibernateUtil.execute(s -> s.delete(abgabe));
    }

這些是我的表:

CREATE TABLE `Abgabe` (
                          `id` INT NOT NULL AUTO_INCREMENT,
                          `name` varchar(255) NOT NULL UNIQUE,
                          `gewicht` FLOAT NOT NULL,
                          `date` SMALLDATETIME NOT NULL UNIQUE,
                          `gruppenAbgabe` BOOLEAN,
                          `bewertet` BOOLEAN,
                          `kommentar` varchar(1000),
                          PRIMARY KEY (`id`)
);

CREATE TABLE `Aufgabe` (
                           `id` INT NOT NULL AUTO_INCREMENT,
                           `oberaufgabe_Id` INT,
                           `name` VARCHAR(255) NOT NULL,
                           `maxPunkte` FLOAT,
                           `maxPunkteMitGewicht` FLOAT,
                           `gewicht` FLOAT NOT NULL,
                           `bewertungskriterien` VARCHAR(255),
                           PRIMARY KEY (`id`)
);

CREATE TABLE `AbgabeAufgabenZuordnung` (
                                           `abgabe` INT NOT NULL,
                                           `aufgabe` INT NOT NULL
);

現在,當我嘗試從 abgabe 中刪除 aufgabe 時,我得到了這個異常:

Caused by: org.hibernate.MappingException: Could not determine type for: de.unibremen.swp.model.benotung.Abgabe, at table: BEWERTETEABGABE, for columns: [org.hibernate.mapping.Column(ABGABE)]

我在這里看到了其他問題,答案是使用 Cascade=CascadeType.ALl 但這對我不起作用。

這不是“刪除期間”的運行時錯誤,而是引導錯誤。 您的 model 未正確映射,但除非您共享整個實體 model,否則我無法幫助您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM