JPQL:将varchar转换为数字

use*_*749 7 java hibernate jpa jpql java-ee

如何在JPQL中将varchar转换为数字?

我设法在sql(Oracle)中使用此查询执行此操作:

SELECT Decode(Upper(column_name), Lower(column_name), To_Number(column_name), -1)
FROM table
Run Code Online (Sandbox Code Playgroud)

我想用JPQL进行这种转换.

谢谢你的帮助

Pau*_*gas 8

你可以做下一个:

CAST(e.salary AS NUMERIC(10,2))
Run Code Online (Sandbox Code Playgroud)

此外,您可以尝试:

  • FUNC('TO_NUMBER', e.areaCode),FUNC允许从JPQL调用数据库函数.

  • SQL('CAST(? AS CHAR(3))', e.areaCode),SQL允许在JPQL中使用和集成SQL.

  • 请注意,除非我错了,`FUNC()`和`SQL()`是eclipselink特有的.然而,在JPA 2.1(JEE7)中引入了`FUNCTION()`,它在可移植时替换了`FUNC()`.另请参阅http://java-persistence-performance.blogspot.com/2012/05/jpql-vs-sql-have-both-with-eclipselink.html (2认同)