我正在做Java EE与MySQL作为数据库和实现JPA对我的代码。
我从MySQL Workbench检索数据没有问题,但当我将语法更改为JPQL时,它就不工作了。
例如,在MySQL中-它工作正常
SELECT date_format(s.date,'%Y, %m, %d') from Transactions s;
在JPQL中-它不
SELECT date_format(s.date,'%Y, %m, %d') from TransactionEntity s;
如何修改以适应JPA查询?
注意:在JPQL中,以下代码起作用
SELECT s.date from TransactionEntity s;
2条答案
按热度按时间cetgtptt1#
SQL函数
date_format
不是JPQL的一部分,任何文档都会告诉您这一点,因此不要认为只是将SQL推入JPQL并期望它工作是有意义的。使用JPA2.1可以做的是按如下方式调用它
其中
function
是调用任何本机SQL函数的方法。这显然意味着您失去了数据库独立性,因为该函数在所有数据存储上都无效。klr1opcd2#
Sql函数在JPQL中可用。我的JPA版本是1.11.9。示例按天分组查询:
查询的结果是一个列表,该列表以格式化的形式记录了按天分组的记录数。
样本行:
对于您的问题,请在JPQL中尝试以下操作: