java-使用JPQL / JPA时如何使用date_format

我正在将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;

解决方法:

正如任何文档会告诉您的那样,SQL函数date_format不是JPQL的一部分,因此仅将SQL推入JPQL并期望它可以工作就没有意义.

使用JPA 2.1可以执行的操作如下

function("date_format", s.date, '%Y, %m, %d')

函数是调用任何本机SQL函数的一种方式.显然,这意味着您失去了数据库独立性,因为该功能在所有数据存储上均无效.

上一篇:mysql-JPA在查询中添加秒数


下一篇:java-休眠的JPQL引发无法输入更新/删除查询