问题标签 [h2db]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1402 浏览

sql - 如何在每次 Junit 测试后从 H2 表中删除已提交更改的行

我正在使用 H2 内存数据库进行单元测试与数据库的交互。

我需要清除 @After 中已提交的更改,以便表格保留但所有行都被擦除(因此我不能只删除表格)。我的数据库也有许多外键,这使得甚至一个一个地擦除对象也很麻烦,因为我必须按照一定的顺序来做。

有没有什么方法可以在不删除表的情况下清理数据库中的行,最好不要一一删除对象?

0 投票
0 回答
557 浏览

java - 未找到 SQL 插入列 - 地图

我想用相同的键创建多个 HashMap。我通过使用@SQLInsert 解决了这个问题。但是现在我得到了一个Column not found错误,也许我注释错了?

错误 -

也许有人有更好的主意来创建具有相同键的多个 HashMap?

例子:

HashMap1 : 键=abc 值=5 ...

HashMap2 : 键=abc 值=2 ...

0 投票
1 回答
507 浏览

postgresql - 如何在 postgres 中执行 H2db 生成的语句

下面是从 h2 生成的 statmen

当我在 postgresql 中执行上述语句时,出现以下错误。

0 投票
0 回答
2032 浏览

java - 在 H2 数据库中转换纪元时间戳

我在 H2 数据库中有预先存在的表名“ABC”。描述是,

在“事件”列中,我有一些 unix 时间戳(以毫秒为单位的纪元时间)数据。

我不知道这是如何插入“数据库”的

我在这里担心的是我想将“事件”内的数据转换为正常的时间戳。

在 MYSQL 中我们有 FROM_UNIXTIME 函数来实现这种场景;但是在 H2 数据库中我找不到出路...

请帮助我。

提前致谢 !!!

回复

0 投票
1 回答
265 浏览

java - 缺少映射的 HQL 左外连接

我正在使用 hibernate/hql 来创建我的查询。现在我遇到了一个问题,我已经坚持了好几个小时,要了解这里的情况是我的周围环境:

我有 3 个需要从中获取信息的表,而连接/分配表总共有 5 个。我需要的信息是Key,Type和SourceFile,但是这里的特殊情况是sql会在导入新数据时完成,所以我想先检查数据是否已经存在,或者部分存在。我的查询需要始终给我密钥,无论是什么类型或 SourceFile,如果密钥本身已经在数据库中,那么我只需要密钥而不是其他信息。(密钥匹配,但 SourceFile 和 Type 不匹配,所以我只想要返回密钥)如果密钥与完全相同的 Type 和 SourceFile 存在,我想获取所有信息。

这些表格是:

(注意:FK_K_ID 保存为带有 name 键的对象,FK_S_ID 保存为 Source,FK_T_ID 保存为 Type)

钥匙:

密钥类型:

类型:

关键来源:

资源:

这是我到目前为止所尝试的:

这个问题是,它有点像我想要的。但我只获取数据库中的所有键,并且仅在匹配的地方获取 KeyType,否则为空。我不想得到所有的钥匙,我只想得到我要求的钥匙。

老实说,我什至不知道我在这里尝试了什么。我想我试图优化第一个查询,只给出我要求的键。

我也尝试使用 fetch 这样或其他变体,但没有像我需要的那样工作。

正如预期的那样,这不起作用。我的意思是看到它不能工作很简单,但如果你不能坚持下去,你会尝试很多。

我尝试了更多的查询组合和变体,但没有运气。第一个查询是我得到的最接近的。我希望有人能帮助我。

PS:我现在无法更改映射或实体。我必须用我得到的东西工作。

更新:

好的,所以我非常接近解决问题。我的查询现在看起来像这样:

现在我唯一想做的就是将 1 与实际对象交换。但是如果我这样做,我会收到错误“org.hibernate.exception.GenericJDBCException:无法执行查询”(在 oracle db 上运行)

有人可以告诉我如何解决吗?

0 投票
0 回答
326 浏览

tomcat - 在 Tomcat 上为 Spark-Java Web 应用程序运行 H2DB

我的 Spark Java 应用程序在其嵌入式 Jetty 服务器上运行良好,所有 h2database 连接都运行良好。

我打包了一个战争以在 tomcat 8 上运行它。但是,一旦我将战争部署到 tomcat。与 h2databse 的连接失败!!

如何解决这个问题?这是我的 web.xml

这是我的主要课程。只有当我打开 sql2o 连接时,代码才会失败。这意味着tomcat无法建立连接,而jetty服务器可以。

这是我用来打包war文件的build.gradle:

0 投票
3 回答
2104 浏览

mysql - 在 Spring 中在 H2 数据库上集成测试 MySQL 语法的问题

我正在开发一个项目,该项目使用不同的 MySQL 模式进行客户管理,例如,每个客户都有自己的数据库模式,该模式是使用骨架模板创建的。

对于兼容性问题,我必须从 Java 创建新的 MySQL 模式,这在 PHP 之前已经完成。我创建了一个小型服务类,它通过重复使用在 MySQL 数据库上完美运行CREATE TABLE 'a' LIKE 'b';,但是这不适用于 H2db,因为 H2LIKE在创建表时不支持 -part。然后我创建了一个 MySQL 并修改了文件以便使用 Java 轻松处理(Files.readAllLines输入到 中Statement.executeBatch)。但是,此转储在 H2db 上也因COLLATION=UTF8. 遗憾的是,拥有这些很重要,因为我们经常有需要正确编码的特殊字符,因此不建议简单地从 sql 文件中删除所述语句。

我像这样初始化 DataSource:

所以,我的配置可能性很少。我们gradle用来构建我们的应用程序,所以建议的maven-plugin 也无济于事 - 至少我还没有发现如何将它与 一起使用gradle,如果可能的话。

所以我的问题是,我需要检查服务是否真的正确地保存了数据,但我不能在内存中做,因为 H2 不支持语法,我不允许使用“真正的”MySQL数据库,因为我们所有的测试都必须从“真实”连接中分离出来,并且如果有必要,只能使用数据库的内存存储。

0 投票
1 回答
37 浏览

java - H2DB 控制台应用程序永不停止

我使用休眠+ H2DB:

但是当我执行 session.close() 时,它完成了,但我的控制台应用程序永远不会终止。我该如何解决?

0 投票
0 回答
442 浏览

h2 - org.h2.Driver 版本用于嵌入式模式

我的要求是在以嵌入式模式部署我的战争文件时应该启动 H2 数据库。为此,我在我的 java 项目中创建了 class(DbSetup)。我在 web.xml 中提到了同一个类。然后我实现了 contextInitialized(ServletContextEvent sce) 方法。在这种方法中,我正在连接到在部署战争时建立连接的 h2 db。在获取战争文件时,我得到了类似“没有为 jdbc:h2:~/test1 找到合适的类。请问如何解决这个问题?我正在将 h2-1.4.192.jar 与我的战争绑定。我还复制了相同的 jar 到类路径。

网页.xml:

我的课:

0 投票
3 回答
2538 浏览

sql - 如何将两列组合为一个主键sql

我有一个数据库包含一个像这个查询一样的身份证表

但是身份证可以相同N_CARD但不同ISSUE_DATE,身份证也可以相同ISSUE_DATE但不同N_CARD,因此两张身份证不能同时N_CARD相同ISSUE_DATE

使用 SQL Workbench/j,该表的 SQL 源是

当我执行这个查询

这个错误

问题是如何在数据库中表示这种情况?