首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >复杂选择的HSQLDB org.springframework.dao.TransientDataAccessResourceException

复杂选择的HSQLDB org.springframework.dao.TransientDataAccessResourceException
EN

Stack Overflow用户
提问于 2018-11-06 14:06:53
回答 1查看 81关注 0票数 0

我有一个在Oracle中运行良好的查询,但是当我试图在HSQLDB (使用Oracle兼容性模式)中运行相同的查询时,我会收到一个org.springframework.dao.TransientDataAccessResourceException

下面是有问题的查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select 
    Orders.id,
    (select sum(decode(Orders.status, 'C', Orderlines.qty, 0)) 
     from Orderlines where orderId = Orders.id
    ) as "productQuantity"
from Orders
join Orderlines on Orders.id = Orderlines.orderId
where Orders.customerId = ?
group by Orders.id, Orders.status

这里是堆栈跟踪的根

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Caused by: org.hsqldb.HsqlException: java.lang.NullPointerException
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.result.Result.newErrorResult(Unknown Source)
at org.hsqldb.result.Result.newErrorResult(Unknown Source)
at org.hsqldb.StatementDMQL.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 60 more
Caused by: java.lang.NullPointerException
at org.hsqldb.ExpressionColumn.getValue(Unknown Source)
at org.hsqldb.Expression.getValue(Unknown Source)
at org.hsqldb.ExpressionOp.getValue(Unknown Source)
at org.hsqldb.ExpressionAggregate.updateAggregatingValue(Unknown Source)
at org.hsqldb.QuerySpecification.buildResult(Unknown Source)
at org.hsqldb.QuerySpecification.getSingleResult(Unknown Source)
at org.hsqldb.QuerySpecification.getResult(Unknown Source)
at org.hsqldb.StatementQuery.getResult(Unknown Source)
... 63 more

如果通过删除decode子句稍微简化查询,HSQLDB可以处理它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select 
    Orders.id,
    (select sum(Orders.status) 
     from Orderlines where orderId = Orders.id
    ) as "productQuantity"
from Orders
join Orderlines on Orders.id = Orderlines.orderId
where Orders.customerId = ?
group by Orders.id, Orders.status

这是已知的HSQLDB限制吗?

有什么办法克服这件事吗?我试图在单元测试中使用HSQLDB,所以修改查询实际上不是一个选项,除非该解决方案也适用于Oracle。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-06 15:14:30

这是HSQLDB的一个限制。您可以尝试CASE Order.status WHEN 'C' THEN Orderlines.qty ELSE 0 END,看看它是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53180783

复制
相关文章
hsqldb
HSQLDB - 100% Java Database,其最大特点是百分百Java的数据库
阿超
2023/02/20
3550
hsqldb
HSQLDB: java程序使用hsqldb 入门教程 java启动hsqldb (初步hsqldb效率评估)
使用java写单机小程序或者测试项目的时候,使用hsqldb是一个不错的选择。 介绍可以看这里: http://www.javaeye.com/topic/78887 http://hi.baidu.
用户1258909
2018/07/03
1.9K0
日益复杂的路径选择算法下将你的快递送到家
如果你现在需要亲手寄送20个快递包裹,你将如何计划最佳的投递路线?
花落花飞去
2018/01/31
1.4K0
Photoshop最新的AI驱动工具可快速选择复杂对象
在Photoshop中隔离对象可能是一个艰难的过程。如果要选择简单的对象,则用选框或套索工具就可以使工作迅速完成。但是,如果处理复杂的对象,例如毛茸茸的狗或皱纹很多的衬衫,则需要很长的时间来优化选区的边缘。早在2017年,Adobe就推出了Select Subject命令。它确实可以加快工作流程,但它只能选择图片中最突出的对象。如果同时有多个对象需要选取怎么办呢?如果只想选择对象的某些部分又怎么办?
AiTechYun
2019/10/31
1.3K0
Photoshop最新的AI驱动工具可快速选择复杂对象
图形编辑器开发:最基础但却复杂的选择工具
光标停留在图形上方,按下鼠标左键,这个图形就被选中了。这就是一个简单的选中了单个图形的场景。
前端西瓜哥
2023/08/18
3750
图形编辑器开发:最基础但却复杂的选择工具
Access、SQLite、HSQLDB、Sybase、MySQL、DB4O
一、Access     数据类型有些另类,而且密码太容易被攻破,性能不高,只能用在Windows程序上。     一般说来,单个表不超过10万少条记录为好,整个数据库不超过100M为好。ACCESS对数据库容量限制为2G,但超过100M后性能便 会有很大折扣。 二、HSQLDB     支持csv,配置分发容易,大数据量情况下性能不佳,这和sql执行效率无关,性能瓶颈在硬盘文件上,毕竟由于hsqldb没有在数 据文件存储上花时间,只是挂个csv。只能用于Java程序中。 三、firebird
用户1258909
2018/07/03
1.6K0
h2换hsqldb最新版报错
我们进入org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfiguration$EmbeddedDataSourceFactory.getEmbeddedDatabase(TestDatabaseAutoConfiguration.java:191)
阿超
2023/02/21
4870
h2换hsqldb最新版报错
可重用的 Hsqldb 启动、停止之 Ant 任务脚手架
此时如果要停止 Hsqldb ,即点击红色按钮来 Terminate 掉它,实现上,Hsqldb的Java线程还是在后台运行的,它并没有真正结束。
阿敏总司令
2019/02/28
9170
复杂链表的复制
复杂链表的复制 示例 输入: {1,2,3,4,5,3,5,#,2,#} 返回值: {1,2,3,4,5,3,5,#,2,#} 思路 方法1:创建新节点直接存 方法2:原节点上操作再分离(1->1'->2->2') 方法2思路: 1.在原节点插入副本节点 2.复制random指针(很关键的一步是copy->random=cur->random->next)指向当前指针的随机指针中的下一节点 3.分离 题解 /* struct RandomListNode {
用户8871522
2022/03/31
3150
复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
砖业洋__
2023/05/06
1330
复杂链表的复制
[剑指offer] 复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
尾尾部落
2018/09/04
4080
[剑指offer] 复杂链表的复制
复杂链表的复制
我们常见的链表中一般有3种类型的指针:指向下一个节点、指向上一个节点、尾节点指向头节点。在复杂链表中,每个节点除了拥有指向下一个节点的指针外,还会有一个指针用于指向链表中的任意节点或者null。本文就跟大家分享下如何复制一个复杂链表,欢迎各位感兴趣的开发者阅读本文。
神奇的程序员
2023/01/09
4550
复杂链表的复制
复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的 head。
MickyInvQ
2021/12/07
4740
复杂链表的复制
复杂度分析的套路及常见的复杂度
上一节,我们一起学习了表示复杂度的几个符号,我们说,通常使用大O来表示算法的复杂度,不仅合理,而且书写方便。
彤哥
2020/07/28
6840
复杂度分析的套路及常见的复杂度
均摊复杂度和防止复杂度的震荡
关于上一节中我们对添加操作的时间复杂度归结为O(n)是考虑了扩容操作(resize)在内的。就addLast(e)操作而言,时间复杂度为O(1),在考虑最坏情况下,每次添加均会触发扩容操作,需要移动n个元素,因此此时addLast操作的时间复杂度为O(n)。
wfaceboss
2019/04/08
8690
均摊复杂度和防止复杂度的震荡
算法的时间复杂度与空间复杂度
算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。 例如之前的斐波那契数:
有礼貌的灰绅士
2023/03/28
1.1K0
算法的时间复杂度与空间复杂度
数据的简洁与复杂
最近在优化人力资源招聘渠道模块数据的时候,想到了这个问题,数据的简洁与复杂,很多时候我们在做数据分析的时候有时候鉴于数据缺少,所以在做前期的原始数据的时候都做的比较的简洁,前期的数据简洁虽然在做数据分析的时候相对比较简单,但是对数据分析的精准性和预测性确影响比较大,因为在做数据分析的时候,数据越多,基数采样越多你后期的数据分析就分析的越精准,我们来看这一个案例:
王佩军
2019/10/17
6410
简化复杂的云混合
如今,云计算部署的秘密是数据存储到目标云的实际“升级和转移”过程可能是一个漫长、复杂和危险的过程,这称之为云混合、云迁移或其他方式。当IT团队不再采用电子邮件和协作等低端应用程序时,尤其是寻找更复杂的
静一
2018/03/27
3.7K0
简化复杂的云混合
算法的时间复杂度与空间复杂度
一、说明 时间复杂度和空间复杂度是用来评价算法效率高低的2个标准,身为开发者肯定会经常会听到这2个概念,但它们分别是什么意思呢? 其实这两个概念从字面意思上也能看出一二: 时间复杂度:就是说执行算法需
Umbrella1024
2021/02/28
1.6K0
复杂的链表的深度拷贝
Copy List with Random Pointer 已知一个复杂的链表,节点中有一个指向本链表任意某个节点的碎甲指针(也可以为空),求这个链表的深度拷贝。
小飞侠xp
2018/08/29
2810

相似问题

选择使用HSQLDB

25

HSQLDB中的原子插入/选择

20

在HSQLDB中选择UUID()

22

从具有位列的HSQLDB表中选择

11

在Java中选择Firebird和HSQLDB

51
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文