2016-08-01 40 views
0

Verwenden von Spring Boot mit Spring Data JPA- und H2 In-Memory-Datenbank zum Zuordnen einer Viele-zu-Viele-Beziehung.Abrufen von "org.h2.jdbc.JdbcSQLException: Tabelle" BOOK_PUBLISHERS "nicht gefunden; SQL-Anweisung:"

Ich habe zwei Tabellen mit Entitäten Buch & Publisher. wo sie viele, viele Beziehungen Schiff

Erstellt Tabelle Verbinden der Book_Id und Publisher_id als Fremdschlüssel zu speichern, wie unten in Tabelle book_publisher.

create table book_publisher 
(
    book_id number not null, 
    publisher_id number not null, 
    PRIMARY KEY (book_id, publisher_id), 
    CONSTRAINT fk_bookpublisher_book FOREIGN KEY (book_id) REFERENCES CURRENCY (id) ON DELETE CASCADE ON UPDATE CASCADE, 
    CONSTRAINT fk_bookpublisher_publisher FOREIGN KEY (publisher_id) REFERENCES VENUE (id) ON DELETE CASCADE ON UPDATE CASCADE 
); 

habe ich nicht die Domain-Klasse für die book_publisher Tabelle schreiben.

Aber ich bin immer:

org.h2.jdbc.JdbcSQLException: Table "BOOK_PUBLISHERS" wurde nicht gefunden; SQL Anweisung: INSERT INTO book_publisher (book_id, PUBLISHER_ID) Werte [42102-191] ", während Storting Buchobjekt (wo Buch Klasse Verlag Objekte hat "SET" Variable

Wie (?,?) Diesen Fehler beheben?

Antwort

0

Wenn Sie das von Ihnen erwähnte Erstellungsskript ausführen, wird eine many_to_many-Beziehung zwischen den Tabellen CURRENCY und VENUE erstellt. Daher würde ich sagen, dass der von Ihnen freigegebene Codeausschnitt falsch ist Tabelle BOOK_PUBLISHER wurde nicht erfolgreich erstellt

Der richtige SQL cod e MANY_TO_MANY Beziehung zu erstellen (zwischen der Tabelle BOOK und PUBLISHER) sein sollte:

create table book_publisher 
(
    book_id number not null, 
    publisher_id number not null, 
    PRIMARY KEY (book_id, publisher_id), 
    CONSTRAINT fk_bookpublisher_book FOREIGN KEY (book_id) REFERENCES BOOK (id) ON DELETE CASCADE ON UPDATE CASCADE, 
    CONSTRAINT fk_bookpublisher_publisher FOREIGN KEY (publisher_id) REFERENCES PUBLISHER (id) ON DELETE CASCADE ON UPDATE CASCADE 
); 
+0

I Skript nach Ihrem Kommentar nur verändert. Trotzdem bekomme ich dieselbe Ausnahme. Die Tabelle mit dem Namen "BOOK_PUBLISHER" wird jetzt erstellt, aber die Anwendung wird die Datensätze nicht in den "BOOK_PUBLISHER" einfügen, indem sie den Fehler trawe. –

+0

@SatishKonda teilen Sie bitte den neuen Fehler Stack Trace. Es kann nicht dieselbe Ausnahme enthalten. Ihre erste Ausnahme war in der Tabelle BOOK_PUBLISHER nicht vorhanden –