CREATE TABLE IF NOT EXISTS SOMETABLE (
id BIGINT AUTO_INCREMENT NOT NULL,
...
FOREIGN KEY (id) REFERENCES OTHERTABLE(id)
...
);
這裏是OTHERTABLE定義:
create table "OTHERTABLE" (
"id" BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,
"code" VARCHAR NOT NULL,
"name" VARCHAR NOT NULL,
"enabled" BOOLEAN NOT NULL,
"app_id" VARCHAR NOT NULL);
請注意,OTHERTABLE是由SLICK(Scala ORM Stack)自動生成的!
這工作與MySQL(這是我們的開發/生產數據庫),然而,我們的單元測試使用H2數據庫,並執行此給出以下堆棧跟蹤:
org.h2.jdbc.JdbcSQLException: Column "ID" not found
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.table.Table.getColumn(Table.java:613)
at org.h2.table.IndexColumn.mapColumns(IndexColumn.java:75)
at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:203)
at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:70)
at org.h2.command.ddl.CreateTable.update(CreateTable.java:169)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:235)
有出路的這,那就是在所有地方將id更改爲「id」,但這會改變MySQL中的中斷!
由於MySQL是我們的prod數據庫,我沒有別的選擇,只能忽略單元測試!
在H2數據庫端有沒有解決方案?
感謝
2013-05-29
iyerland
+0
我還不清楚要求嗎? –
+0
爲什麼在對H2數據庫執行操作時出現此錯誤「列ID未找到」?我如何減輕它?希望這足夠清楚了嗎?謝謝! –
+0
您可以發佈*完整*錯誤消息嗎? –