【发布时间】:2012-05-19 15:12:54
【问题描述】:
我在数据库中有两个 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 的等价物是什么。
一个选项可能是(我还没有尝试过)是在返回 Decimal 类型的实体中使用@Transient 方法并在那里进行计算并将其传递给JPQL,但我宁愿让SQL 做这项工作。
Mysql 不需要在数据库级别进行强制转换。所以不同 RDBMS 的行为是不同的,这很好。但是 JPQL 应该做什么而不需要使用本机查询来知道此操作需要强制转换为十进制。
添加方言<property name="openjpa.jdbc.DBDictionary" value="derby"/> 也没有解决。
请注意它是 JPA1
【问题讨论】:
标签: java jpa openjpa websphere-7