带有Sping Boot 3和Hibernate的H2 Oracle兼容模式6.2.5.final不适用于类似查询

scyqe7ek  于 2023-10-16  发布在  Oracle
关注(0)|答案(2)|浏览(91)

我在我的spring Boot 3应用程序中以oracle兼容模式在内存数据库中使用h2进行测试。
在从sb 2迁移到sb 3的过程中,我发现每个按标准jpa API构建的like查询不再工作,经过短暂的研究,发现like查询添加了额外的字符转义。
举例来说:
select x from y where a like ? escape ''
以前escape没有被添加到查询中(sb 2):
select x from y where a like ?
如何禁用这个开箱即用的转义?
版本:h2:1.4.200Spring罩:3.1.1 hibernate-core:6.2.5 sql方言:h2

prdp8dxp

prdp8dxp1#

我已经从jdbc h2 URL中删除了mode:ORACLE,它工作得很好。不是最好的解决方案,但仍然有效。

gzjq41n4

gzjq41n42#

这不是最好的解决方案,但你可以添加“escape”\“到你的查询,这将阻止它把空的放在那里。这将改变你的查询,并将反斜杠视为转义字符,所以你需要注意这一点。

相关问题