我Integer
在数据库中有两列(derby 和 db2)。我需要在一个JPQL
.
Integer
如果余数是十进制数,则两个列的类型都返回零,例如0.25
变成0
等,并且可以理解,因为类型是 int。
例如SQL
,我可以有这个
select CAST(column1 as decimal(6,2))/CAST(column2 as decimal(6,2))from Sometable;
但什么是JPQL
等价的。
一种选择可能是(我还没有尝试过)是@Transient
在实体中有一个方法返回 Decimal 类型并在那里进行计算并将其传递给JPQL
但我宁愿让SQL
这项工作。
Mysql 不需要在数据库级别进行强制转换。所以不同 RDBMS 的行为是不同的,这很好。但是 JPQL 应该做什么而不需要使用本机查询来知道此操作需要强制转换为十进制。
添加方言<property name="openjpa.jdbc.DBDictionary" value="derby"/>
也没有解决它。
请注意它是 JPA1