【发布时间】:2011-08-25 14:41:42
【问题描述】:
我们使用 EclipseLink 进行持久化,并通过将属性 eclipselink.ddl-generation 设置为 drop-and-create-tables 来配置 EclipseLink 以自动创建数据库表等。
这可以正常工作,但是 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) 集成测试失败。
如果错误只是表已经存在(在针对现有数据库进行测试的情况下),则可以忽略某些方式的奖励积分。
【问题讨论】:
标签: jpa error-handling integration-testing eclipselink