标签: mysema

如何使用 mysemma 从 querydsl 记录后台生成的 sql 查询

使用mysemma的querydsl显示自动生成的sql查询的任何最佳方式,以便可以轻松查看这些sql查询,并且在使用querydsl时调试sql查询变得容易。

例如: from(qCustomer).where(qCustomer.custId.eq("1"));

我需要知道幕后生成的 sql 并希望记录日志以便我可以轻松调试我的应用程序。

hibernate querydsl spring-data-jpa mysema

6
推荐指数
2
解决办法
5755
查看次数

QueryDSL组在一个时间范围内按小时计算

我有以下SQL查询按一天中的订单日期和小时对订单进行分组:

select to_char(o.order_date, 'YYYY-MM-DD HH24') order_date_hour,
  sum(o.quantity) quantity
from orders o
where o.order_date >= to_date('01.02.2016', 'DD.MM.YYYY')
  and o.order_date < to_date('03.02.2016', 'DD.MM.YYYY')
group by to_char(o.order_date, 'YYYY-MM-DD HH24')
order by to_char(o.order_date, 'YYYY-MM-DD HH24');
Run Code Online (Sandbox Code Playgroud)

结果的一个例子如下:

ORDER_DATE_HOUR | QUANTITY 
2016-02-01 06   | 10 
2016-02-03 09   | 20
Run Code Online (Sandbox Code Playgroud)

查询使用SQL开发人员按预期工作.在QueryDSL中,我提出了以下查询:

SQLQuery q = queryFactory.createSQLQuery();
q.from(order);
q.where(order.orderDate.goe(Timestamp.valueOf(from)))
.where(order.orderDate.lt(Timestamp.valueOf(to)));

q.groupBy(to_char(order.orderDate, "YYYY-MM-DD HH24"));
q.orderBy(order.orderDate.asc());

List<Tuple> result = q.list(to_char(order.orderDate, "YYYY-MM-DD HH24"), order.quantity);
Run Code Online (Sandbox Code Playgroud)

to_char是我在这个帖子中找到的方法:https://groups.google.com/forum/#!msg /querydsl/WD04ZRon-88/nP5QhqhwCUcJ

我得到的例外是:

java.sql.SQLSyntaxErrorException:ORA-00979:不是GROUP BY表达式

我试了一下查询的几个变种而没有运气.

有谁知道查询失败的原因?谢谢 :)

java oracle querydsl mysema

4
推荐指数
1
解决办法
1669
查看次数

标签 统计

mysema ×2

querydsl ×2

hibernate ×1

java ×1

oracle ×1

spring-data-jpa ×1