2016-08-01 90 views
0

使用Spring Boot,使用Spring Data JPA和H2內存數據庫獲取映射多對多關係的過程。獲取「org.h2.jdbc.JdbcSQLException:未找到表」BOOK_PUBLISHERS「; SQL語句:」

我有兩個表與實體書&出版商。他們在多對多關係中運送

創建加入表以將Book_IdPublisher_id作爲外鍵存儲在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 
); 

不是我寫的book_publisher表域類。

但我正在逐漸:

org.h2.jdbc.JdbcSQLException:表 「BOOK_PUBLISHERS」 找不到; SQL 聲明:插入book_publisher(book_id,PUBLISHER_ID)值 [42102-191]「,而議會書的對象(這裏的書類有 發行對象爲 」SET「 變量

如何(?,?)解決這個錯誤?

回答

0

如果你正在運行你提到的創建腳本,它會在CURRENCY和VENUE表之間創建一個many_to_many關係,所以我想說你分享的代碼片段是錯誤的,這可能是爲什麼表BOOK_PUBLISHER未創建成功

正確的SQL cod e創建many_to_many關係(表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 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

我剛剛根據您的評論更改了腳本。我仍然得到同樣的例外。名爲「BOOK_PUBLISHER」的表現在已創建,但應用程序仍然不會通過拖放錯誤將記錄插入到「BOOK_PUBLISHER」中。 –

+0

@SatishKonda請分享新的錯誤堆棧跟蹤。它不能包含相同的異常。你的第一個例外是表BOOK_PUBLISHER不存在 –

相關問題