我在我的代码和数据库中做了一些重构。我在DB中所做的一项更改是创建一个新表newTable1
,其中包含oldTable2
的一些信息,以及其他一些表。然后我删除了oldTable2
并将表格newTable1
重命名为oldTable2
在我的本地数据库中,一切都很完美。我遇到的问题是集成测试。看起来测试仍然引用旧表而不是新表。
当我的实体引用:@Table(name = "oldTable2")
时 - 测试工作,但应用程序不工作。当我将其更改为@Table(name = "newTable1")
时 - 测试不起作用,但应用程序会起作用。
我得到以下异常:
Caused by: org.h2.jdbc.JdbcSQLException: Column "TABLE0_.ID" not found; SQL statement:
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
at org.h2.expression.Alias.optimize(Alias.java:51)
at org.h2.command.dml.Select.prepare(Select.java:835)
at org.h2.command.Parser.prepareCommand(Parser.java:246)
at org.h2.engine.Session.prepareLocal(Session.java:460)
at org.h2.engine.Session.prepareCommand(Session.java:402)
对于凌乱的解释感到抱歉,谢谢你的任何线索。