草庐IT

h2database

全部标签

Java:Hibernate 看不到 DataBase 的变化

我有两个共享同一个数据库的不同应用程序。问题是当我有一个应用程序更改数据库中的某些内容时,另一个应用程序不会更新。我尝试制作一个session.flush()但它没有用。唯一的方法是关闭整个session并重新创建它,但这当然需要很长时间。 最佳答案 简答:每次你想显示某个对象时发出一个session.refresh(obj)。它将强制Hibernate转到数据库。另一种解决方案是使用StatelessSession,它不会缓存任何内容(甚至一级缓存也不缓存),每次需要记录时都会强制您的应用程序访问数据库:http://docs.j

java - 如何使用 TestNg 对 Hibernate、H2 进行测试?

什么是测试DAO层的正确方法?我在创建和销毁SessionFactory时使用了@BeforeMethod和@AfterMethod注释方法,但它不适用于多个测试。如果测试一个接一个地运行,但当它们一起运行时没有使用maven构建,所以我决定我应该使用TestNg组对它们进行分组并执行@BeforeGroup和@AfterGroup方法,其中我对Hibernate做了同样的事情。所以我做了这样的事情:@Test(groups={"integration"})publicclassIntegrationTest{protectedSessionFactorysessionFactory;

【参赛作品93】openGauss-An Autonomous Database【PVLDB论文阅读分享】

作者:YAN左使本文基于openGauss在VLDB2021上最新发表的论文《openGauss:AnAutonomousDatabaseSystem》,从学术的角度来探究openGauss如何基于各种AI技术构建一个智能的自治数据库系统。论文作者是清华大学李国良教授,他同时也是openGauss的总架构师。本文主要是对论文的阅读笔记和个人见解,如有错误,欢迎各位指正!1.摘要虽然近年来基于学习的数据库优化技术在学术界得到了广泛的研究,但很多技术还没有被广泛部署到商业数据库系统中。这篇论文的作者探讨如何将基于AI的数据库技术整合到openGauss中,从而构建一个自治数据库系统架构。这些基于A

java - 向外部 H2 数据库添加聚合函数

我正在尝试使用Java在我的H2数据库中创建一个聚合函数。该函数应从给定的Double列返回自定义中值计算。此计算包括仅使用足够接近使用max_varianceint值的平均值的值。为此,我创建了类:packagecustommedian;publicclassCustomMedianimplementsorg.h2.api.AggregateFunction{finalintmax_variance=7;java.util.LinkedListvalues=newjava.util.LinkedList();@Overridepublicvoidinit(java.sql.Conne

java - 更改序列 H2DB 的数据类型

我需要更改存储到H2DB中的序列的返回值,当我通过直接SQL查询调用nextVal时,H2返回一个BigInt并且我需要一个BigDecimal。我无法转换或转换这个值,我需要H2返回一个BigDecimal。我该怎么做?编辑:我无法更改Java代码,因为我正在测试,因此无法转换或转换来自DB的请求值。 最佳答案 如果允许替换H2jar文件,您可以创建自己的H2补丁版本。在org.h2.expression.Function中更改addFunctionNotDeterministic("NEXTVAL",NEXTVAL,VAR_AR

java:在 H2 中的 executeBatch() 之后检索键

我正在尝试从executeBatch()事务中检索生成的key,但我只获得了要添加的最后一个key。这是我的代码:PreparedStatementps_insert=conn.prepareStatement(insertQuery,PreparedStatement.RETURN_GENERATED_KEYS);for(inti=0;i我做错了什么?编辑:很抱歉没有提到我在嵌入式模式下使用H2(http://www.h2database.com/html/main.html)数据库。 最佳答案 根据H2jdbcdriverjav

java - H2 数据库 : How to have lowercase for tablename?

我想将所有表名都保留为小写。示例人我使用Liquibase设置我的数据库,它看起来像AddPersonTable我使用H2数据库来运行我的集成测试并在pom.xml中设置为cargo.datasource.driver=${h2.driver}|cargo.datasource.url=${datasource.url}|cargo.datasource.jndi=${datasource.jndi}|cargo.datasource.username=${h2.user}|cargo.datasource.password=${h2.user}datasource.url看起来像jd

java - 在 h2o 中加载大于内存大小的数据

我正在试验在h2o中加载大于内存大小的数据。H2oblog提到:关于更大数据和GC的注释:当Java堆太满时,我们会执行用户模式磁盘交换,即,您使用的大数据多于物理DRAM。我们不会死于GC死亡螺旋,但我们会降级到超出核心的速度。我们将按照磁盘允许的速度进行。我亲自测试过将12Gb数据集加载到2Gb(32位)JVM中;加载数据大约需要5分钟,运行逻辑回归又需要5分钟。这是连接到h2o3.6.0.8的R代码:h2o.init(max_mem_size='60m')#alloting60mbforh2o,Risrunningon8GBRAMmachine给予javaversion"1.8.

java - 在 H2 [SPRING-BOOT] 的 NamedParameterJDBCTemplate 上使用整数时的未知数据类型

我正在使用带H2的内存数据库测试Dao。我将一个int传递给带有map的查询以执行它。此查询在OracleSQL上运行正常,但在H2中未成功。DAO@OverridepublicintdeleteCancelled(intdays){finalMapnamedParameters=newHashMap();namedParameters.put(DAYS,days);namedParameters.put(STATUS,StatusEnum.CANCELLED.toString());intupdated=this.namedParameterJdbcTemplate.update(Q

java - 关闭H2数据库;压缩还是碎片整理?

在我的应用程序中,我连接到一个H2数据库,我最近一直在研究这个数据库是如何关闭的。在我的连接字符串中,我设置了DEFRAG_ALWAYS=true,根据H2文档Eachtimethedatabaseisclosed,itisfullydefragmented(SHUTDOWNDEFRAG).现在我假设当JVM关闭时,关闭Hook将关闭数据库并对其进行碎片整理(就像执行SHUTDOWNDEFRAG)。但是如果我要在退出应用程序之前执行SHUTDOWNCOMPACT,同时在连接字符串中应用DEFRAG_ALWAYS=true,将使用哪个关闭过程? 最佳答案