我的代码中有以下DDL:

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);

请注意,OTIERTABLE由SLICK(Scala ORM Stack)自动生成!

这适用于MySQL(这是我们的dev / prod数据库),但是,我们的单元测试使用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数据库方面有解决方案吗?

谢谢

dbexception.java,mysql – org.h2.jdbc.JdbcSQLException:找不到列“ID”相关推荐

  1. 【Java+MySQL】使用JDBC连接MySQL 8.0数据库

    一.Java MySQL 8.0连接驱动包 下载链接:https://pan.baidu.com/s/1YFOImz0dCHtzIajSFq9xgg?pwd=boul 提取码:boul [IDEA]导 ...

  2. 【Java MySQL】 009 JDBC

    JDBC SUN 公司为了简化开发人员的(对数据库的统一)操作,提供了一个(Java 操作数据库的)规范,俗称 JDBC 这些规范的实现由具体的厂商去做 对于开发人员来说,我们只需要掌握JDBC接口的 ...

  3. Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库

    一.搭建测试环境和项目 1.1.搭建JavaWeb测试项目 创建一个[H2DBTest]JavaWeb项目,找到H2数据库的jar文件,如下图所示: H2数据库就一个jar文件,这个Jar文件里面包含 ...

  4. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  5. java mysql教程基于_java基于jdbc连接mysql数据库功能实例详解

    本文实例讲述了java基于jdbc连接mysql数据库的方法.分享给大家供大家参考,具体如下: 一.JDBC简介 Java 数据库连接,(Java Database Connectivity,简称JD ...

  6. 【MySQL 数据库】JDBC 编程之 Java 连接 MySQL

    文章目录 1. 数据库编程的基础条件 2. Java 的数据库编程:JDBC 3. JDBC 访问数据库的层次结构 4. MySQL 数据库操作介绍 5. MySQL 驱动包的下载及添加到项目 6. ...

  7. 基于javaweb的慢病报销管理信息系统(java+mysql+jdbc+servlet+jsp)

    基于javaweb的慢病报销管理信息系统(java+mysql+jdbc+servlet+jsp) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  8. 基于javaweb+jsp的生病慢病报销管理信息系统(java+MySQL+Jdbc+Servlet+Jsp)

    基于javaweb+jsp的生病慢病报销管理信息系统(java+MySQL+Jdbc+Servlet+Jsp) 一.项目简述 功能: 慢病管理,医疗机构管理,家庭管理,费用交纳,费用报销,报表统计等等 ...

  9. JDBC之 java - mysql 各个版本 jar包 驱动

    方法一 JDBC之 java - mysql 各个版本 jar包 驱动 : http://central.maven.org/maven2/mysql/mysql-connector-java/ 例如 ...

最新文章

  1. 开发自己的山寨Android注解框架
  2. ffmpeg rtsp转 rtmp
  3. Mysql和mono,.net – Mac OS X Mono和MySql连接器问题
  4. pdf to word android,Scanned PDF to Word
  5. 分布式链路追踪 之 Skywalking 设计理念核心原理
  6. Vector Packet Processor(VPP) - 层二层三转发图谱
  7. 【漫画】AI小猪的一生---阿里云ET农业大脑如何与特驱集团养出“200公里猪”
  8. BZOJ 1041 数学
  9. 百度又做电商;ofo 退出日本;Kotlin 1.3 正式发布 | 极客头条
  10. 百度李彦宏谈Google回归:真刀真枪地再PK一次,再赢一次
  11. 一个U盘走天下,装机大神撩妹的不二之选
  12. python卸载_手把手教Python环境安装
  13. 伊洛纳登录显示服务器连接中,伊洛纳萌新入坑常见问题汇总
  14. Ubuntu20装Nvidia驱动--中文显示乱码问题
  15. 嵌入式软件工程师经典面试题
  16. UVC系列3-研究UVC控制协议
  17. 【系统分析师】操作系统
  18. minio实现大文件分片上传+断点续传+预览
  19. VScode受难记 - 0
  20. 赛宁网安“网络安全卓越中心”:立足科技创新 推动网安产业高质量发展

热门文章

  1. pure-ftp 修改用户信息
  2. Visual Studio Developer Assistant 3月新功能展示
  3. MYSQL5.7---ONLY_FULL_GROUP_BY 异常处理
  4. Appium UiWatchers 监听解决各种非期待弹窗,弹层,弹弹弹等问题
  5. VS2010团队开发调试器无法继续运行该进程,项目文件“”已被重命名或已不再解决方案中
  6. 通过js跳转url下载包含中文的文件乱码问题解决方案(java)
  7. 【白皮书分享】2021汽车产业数字化转型白皮书-腾讯研究院.pdf(附下载链接)...
  8. The Turn Model for Adaptive Routing中的west-first算法
  9. 全球首发!惯性导航导论(剑桥大学)第六部分
  10. prompt 你到底行不行?