我有这个Sql查询。它返回每天生成的事件数。
SELECT DATE_FORMAT(`timestamp`, "%y-%m-%d") AS date , COUNT(*)
FROM `Event`
WHERE `active`=1
GROUP BY date
输出
| date | Count |
------------------------
| 14-09-29 | 1 |
| 14-11-02 | 1 |
| 14-11-03 | 3 |
... ...
我想在JPA QueryDSL上进行此查询,但我不知道该怎么做,因为我找不到办法DATE_FORMAT('timestamp', "%y-%m-%d") AS date
是否可以在JPA QueryDSL上执行此查询,或者无法通过限制来完成此查询?
谢谢。
答案 0 :(得分:1)
最后我用这个Query解决了这个问题。我还添加了日期范围过滤器。
<!DOCTYPE html>
<html ng-app="demo">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.3/angular.js" data-semver="1.4.3"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainController">
<p>This is the message {{message}}</p>
</body>
</html>
感谢您的帮助。
答案 1 :(得分:0)
您可以使用@Formula annotation将计算列添加到您的实体,然后在QueryDSL调用中使用计算列。
public class MyEntity {
...
@Formula('DATE_FORMAT(`timestamp`, "%y-%m-%d")')
String myDatStr;
...
}