2016-06-08 8 views
0

In meinem Benutzerobjekt ich unten haben Join-Tabelle:Elternteil Key nicht gefunden (ORA-02291)

@JsonIgnore 
    @ManyToMany 
    @JoinTable(
      name = "JHI_USER_AUTHORITY", 
      joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")}, 
      inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")}) 
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
    private Set<Authority> authorities = new HashSet<>(); 

ich auch einen Trigger auf Benutzerobjekt haben eine primäre ID bis auf Zeile Schaffung

TRIGGER TRG_JHI_USER_ID 
      BEFORE INSERT 
      ON JHI_USER 
      FOR EACH ROW 
      DECLARE 
      BEGIN 
      SELECT SEQ_USER.NEXTVAL INTO :NEW.ID FROM DUAL; 
      END TRG_JHI_USER_ID; 
einfügen Jetzt

, wenn ich einen Benutzer erstelle ich unter Ausnahme erhalten:

Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (PORTALUSER.FK_USER_ID) violated - parent key not found 

Scheint, wie wenn das Benutzerobjekt versucht wird, beibehalten werden, um es m anhalten y many-to-many table auch bevor der trigger ausgeführt wird und somit keine user_id gefunden wird, wenn das richtig verstanden ist. Wie löse ich das, ohne eine komplexe Lösung zu durchsuchen?

passieren Dieses in Oracle 11.

Dies ist das Modell:

enter image description here

+0

Der "Portalbenutzer" ist der Besitzer wie "PORTALUSER". "JHI_USER_AUTHORITY". – talx

+0

Ich habe das Modell in meiner Beschreibung hinzugefügt – talx

+0

Sorry für meine Verwirrung, was 'portaluser' war. Dennoch ist der Auslöser nicht das Problem. Irgendwie wird die Zeile 'jhi_user_authority' * vor * der übergeordneten' jhi_user' Zeile eingefügt. Hast du die Kontrolle darüber? Sind Sie sicher, dass eine 'jhi_user'-Zeile eingefügt wird? – sstan

Antwort

1

JHipster unterstützt nur Oracle 12.

Die einzige Konfiguration, die Sie mit JHipster für Oracle Unterstützung ausgewählt haben könnte ist Oracle 12c, was bedeutet, dass es nicht gut für Oracle 11 funktioniert.

P Bitte beachten Sie, dass es für ein Open-Source-Projekt sehr schwierig ist, eine proprietäre, kostenpflichtige Datenbank zu unterstützen, so dass wir nicht an älteren Versionen von Oracle arbeiten werden.

+0

Ok, danke Julien :) Übrigens verwende ich momentan die unter https://github.com/jhipster/generator-jhipster/issues/1631 erwähnte Lösung – talx

Verwandte Themen