h2相关内容

在H2 DDL中始终作为标识生成

在我们的项目中,我们使用Postgres数据库来开发生产环境,而对于junit测试,我们使用内存数据库中的h2。 想知道我们是否可以创建以生成始终为标识的DDL,以在H2数据库中插入具有唯一ID的每一行。 推荐答案 IDENTITY 在H2中,使用IDENTITY类型自动生成递增的64位长整数。 H2中使用的这个单字语法是SQL:2003标准中定义的GENERATED … ..
发布时间:2022-08-11 10:13:08 其他开发

SQL语句仅当天的最新条目

似乎太久以前,我需要创建自己的SQL语句。我有一个带有时间戳(TS)和值(VALUE)的表(GAS_COUNTER)。 每天有数百个条目,但我只需要当天的最新条目。我试了不同的方法,但始终得不到我想要的。 编辑 感谢您的快速回复,但有些不能满足我的需求(我需要表中每天的最新值),有些不起作用。我自己最好的陈述是: select distinct (COUNT), from ..
发布时间:2022-07-15 21:03:38 其他开发

使用Hikari CP实例化H2时出错

我正在尝试将h2设置为与内存数据库中相同的设置,用于我的Spring Boot测试环境。我已将我的应用程序配置为: spring.datasource.url=jdbc:h2:mem:test spring.datasource.username=sa spring.datasource.password= spring.datasource.platform=postgres sprin ..
发布时间:2022-04-08 11:25:24 其他开发

H2数据库从1.4.200升级到2.0.204后的集成测试问题

最近,我将SpringBoot 2.5.8项目中的H2数据库从版本1.4.200升级到2.0.204。它仅用于测试目的。对于生产,我们使用PostgreSQL 12.9。 似乎升级后有些词会成为H2数据库中的关键词,例如:day、value。调用集成测试后,Hibernate部件DDL失败。 Postgres 12 - Keywords H2 - Keywords 针对这种情况的最佳 ..
发布时间:2022-04-08 11:23:18 其他开发

测试Hibernate@Check约束时无法生成约束冲突异常

我正在使用Hibernate@Check批注,但不能让我的测试在不满足约束时失败。当前仅对H2数据库使用默认的Spring启动配置。 我错过了什么?save(..)之后是否应该有某种刷新? 运行测试时,我看到正确创建了表。如果我从日志中复制创建行,并使用它在我的“真正的”postgres数据库中创建表,我可以测试不同的插入,并看到此行完全可以使用约束。 实体 @Getter ..
发布时间:2022-04-08 11:20:45 Java开发

多个H2数据库连接,不同的访问模式

我有两个客户端分别连接到同一个H2数据库。我希望其中一个连接是只读的,另一个是读写的。为此,我使用以下连接字符串: 只读:jdbc:h2:tcp://localhost/~/test;ACCESS_MODE_DATA=r 读写:jdbc:h2:tcp://localhost/~/test;ACCESS_MODE_DATA=rw 我的问题是访问模式似乎是数据库的属性,而不是连接的属 ..
发布时间:2022-04-08 11:18:19 其他开发

设置H2 init运行脚本时出现问题。使用Java模块化系统时,如果脚本不在类路径根文件夹中,则找不到文件

以下是有关如何从资源文件夹初始化运行脚本的问题的接受答案:problem with INIT=RUNSCRIPT and relative paths。 连接字符串: jdbc:h2:mem:;INIT=RUNSCRIPT FROM 'classpath:desktop/core/database/databaseCreation.sql' 但是,我得到异常,即使文件存在,也找不到 ..
发布时间:2022-04-08 11:16:07 Java开发

H2数据库:仅对非空值的唯一约束?(过滤后的索引)

SQL Server 2008apparently has filtered indices。 在H2中实现相同目标的最简单方法是什么? 推荐答案 我相信您可以使用计算列来实现此目的。。。假设您有唯一的ID。让我假设唯一的id是数字的,并且不是负数。然后: alter table t add col (case when then -1 else u ..
发布时间:2022-04-08 11:14:31 其他开发

对于UUID类型列,在插入新行时返回H2数据库中默认生成的主键值

使用UUID数据type作为表的主键,并在插入新记录时要求h2generate each UUID value by default,如何获取新生成的UUID值? 我在Java应用程序中使用纯JDBC 4.x,如果这对解决方案有帮助的话。 I KnowSCOPE_IDENTITY函数为在标记为IDENTITY的列上为自动递增的序列号生成的键返回long。但我使用UUID而不是递增数字作 ..
发布时间:2022-04-08 11:05:49 Java开发

标量子查询包含多行

我正在使用H2数据库,想要移动一些数据。为此,我创建了以下查询: UPDATE CUSTOMER SET EMAIL = SELECT service.EMAIL FROM CUSTOMER_SERVICE AS service INNER JOIN CUSTOMER AS customer ON service.ID = customer.CUSTOMER_SERVICE_ID; 现在 ..
发布时间:2022-04-08 11:02:59 其他开发

H2使用数据对内存中数据库进行初始化

我使用h2和Hibernate来动态生成内存中的DB,以便进行单元测试。 我成功地创建了数据库,一切运行正常。 但我有一个问题,我不知道该怎么解决。 在执行测试之前,我需要将参考数据加载到数据库中进行测试。 我将这些数据作为SQL插入的文件进行了审查,我只需要在实时环境中运行一次,然而,因为数据库是每次从头开始生成的,所以我需要弄清楚如何在运行时插入数据。 数据非常简单,它是国家列表、州列表等。 ..
发布时间:2022-04-08 11:00:15 Java开发

如何在运行Spring测试时修复H2插件(版本1.4.200)的错误:找不到JdbcSQL语法错误异常:Column&Quot;Start_Value&Quot;

我不得不将Spring Boot Starter从2.1.4.RELEASE更新到2.2.6.RELEASE,但现在集成测试失败。 我的测试是用Groovy编写的,我的应用程序是用Java编写的。它们与之前的Spring版本(2.1.4)运行良好。 在SpringBoot Starter版本更新后,当我运行集成测试时,日志中开始出现新的错误: H2-版本 ..
发布时间:2022-04-08 10:58:47 其他开发