我們使用EclipseLink進行持久化,並配置了EclipseLink以通過將屬性eclipselink.ddl-generation
設置爲drop-and-create-tables
來自動創建數據庫表等。如果執行DDL語句時發生錯誤,使EcliseLink失敗
這工作正常,但是EclipseLink(以及我們的應用程序)會在單元測試期間以及實際的Web應用程序啓動時愉快地繼續,即使某些DDL語句失敗。
我注意到這一點,當我使用不當的@Index
註釋,並想知道爲什麼不創建索引,直到我在日誌中發現:
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.h2.jdbc.JdbcSQLException:
Column "MY_INDEX_FLD" not found; SQL statement:
CREATE INDEX X_INDEX ON X (MY_INDEX_FLD)
我真的很想知道,如果發生這種情況。如果某些DDL語句失敗,是否有某種方法可以告訴EclipseLink使其成爲致命錯誤?
我想至少讓我們的(JUnit)集成測試在這種情況下失敗。
如果錯誤僅僅是表已經存在(在針對現有數據庫進行測試的情況下),某些方式可以忽略的獎勵點。