问题标签 [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.
sql - 如何在每次 Junit 测试后从 H2 表中删除已提交更改的行
我正在使用 H2 内存数据库进行单元测试与数据库的交互。
我需要清除 @After 中已提交的更改,以便表格保留但所有行都被擦除(因此我不能只删除表格)。我的数据库也有许多外键,这使得甚至一个一个地擦除对象也很麻烦,因为我必须按照一定的顺序来做。
有没有什么方法可以在不删除表的情况下清理数据库中的行,最好不要一一删除对象?
java - 未找到 SQL 插入列 - 地图
我想用相同的键创建多个 HashMap。我通过使用@SQLInsert 解决了这个问题。但是现在我得到了一个Column not found
错误,也许我注释错了?
错误 -
也许有人有更好的主意来创建具有相同键的多个 HashMap?
例子:
HashMap1 : 键=abc 值=5 ...
HashMap2 : 键=abc 值=2 ...
postgresql - 如何在 postgres 中执行 H2db 生成的语句
下面是从 h2 生成的 statmen
当我在 postgresql 中执行上述语句时,出现以下错误。
java - 在 H2 数据库中转换纪元时间戳
我在 H2 数据库中有预先存在的表名“ABC”。描述是,
在“事件”列中,我有一些 unix 时间戳(以毫秒为单位的纪元时间)数据。
我不知道这是如何插入“数据库”的
我在这里担心的是我想将“事件”内的数据转换为正常的时间戳。
在 MYSQL 中我们有 FROM_UNIXTIME 函数来实现这种场景;但是在 H2 数据库中我找不到出路...
请帮助我。
提前致谢 !!!
回复
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 上运行)
有人可以告诉我如何解决吗?
tomcat - 在 Tomcat 上为 Spark-Java Web 应用程序运行 H2DB
我的 Spark Java 应用程序在其嵌入式 Jetty 服务器上运行良好,所有 h2database 连接都运行良好。
我打包了一个战争以在 tomcat 8 上运行它。但是,一旦我将战争部署到 tomcat。与 h2databse 的连接失败!!
如何解决这个问题?这是我的 web.xml
这是我的主要课程。只有当我打开 sql2o 连接时,代码才会失败。这意味着tomcat无法建立连接,而jetty服务器可以。
这是我用来打包war文件的build.gradle:
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数据库,因为我们所有的测试都必须从“真实”连接中分离出来,并且如果有必要,只能使用数据库的内存存储。
java - H2DB 控制台应用程序永不停止
我使用休眠+ H2DB:
但是当我执行 session.close() 时,它完成了,但我的控制台应用程序永远不会终止。我该如何解决?
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:
我的课:
sql - 如何将两列组合为一个主键sql
我有一个数据库包含一个像这个查询一样的身份证表
但是身份证可以相同N_CARD
但不同ISSUE_DATE
,身份证也可以相同ISSUE_DATE
但不同N_CARD
,因此两张身份证不能同时N_CARD
相同ISSUE_DATE
。
使用 SQL Workbench/j,该表的 SQL 源是
当我执行这个查询
这个错误
问题是如何在数据库中表示这种情况?