dbexception.java,org.h2.jdbc.JdbcSQLException:列 「ID」 找不到

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

您可以發佈*完整*錯誤消息嗎? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值