Joe*_*ras 5 regex hibernate hql isnumeric
我有一个小问题要揭露:
我想从实体中提取,假设其名称为"CustomerDetail",其中特定字段(代码)只有数字字符的所有行.
在HQL中不存在ISNUMERIC()函数,如Sql Server,以及应用regex函数的可能性.
可能的解决方案如下:
SELECT C
FROM CustomerDetail C
WHERE C.code NOT LIKE '%A%'
AND C.code NOT LIKE '%B%'
Run Code Online (Sandbox Code Playgroud)
等重复这个条件整体alfabetical字母和特殊字符.
我认为这是一个糟糕的解决方案,性能低下(大量的LIKE)
拜托,您能告诉我一个更聪明的解决方案吗?
先感谢您
PS我的应用程序是多DBMS所以我不能使用SQL查询
主要编辑:我的错,我把刚刚工作的函数 isNumeric() 误认为是 HQL 函数,这是错误的。根据文档, HQL 支持数据库标量函数 - 并且 SQLServer(我在其上测试过)有一个 isNumeric() 函数。
我现在看到两个选择:
选项 1:您可以为不同的数据库编写不同的 HQL,这些数据库利用 SQLServer 上的 isNumeric() 等内置函数(但就“一次编写,到处运行”而言,这是一个巨大的退步)
选项 2:为每个您想要兼容的数据库编写 SQL 中的自定义函数,并使用您的方言中的相同名称进行注册。
我知道,这两种选择都不是很好,但我想不出任何其他方法可以让它发挥作用。
| 归档时间: |
|
| 查看次数: |
1483 次 |
| 最近记录: |