我正在尝试使用 QueryDsl 调用 SQL 语句,Spring Data JPA 无法涵盖该语句。这是我要运行的句子。
SELECT timestamp, deviceId
FROM EventData a
INNER JOIN
(SELECT max(timestamp) timestamp, deviceId
FROM EventData
GROUP BY deviceId) b
USING (timestamp,deviceId)
WHERE deviceId in ('1', '2')
我确实喜欢下面:
@PersistenceContext
EntityManager em;
JPAQuery query = new JPAQuery(em);
QEventData eventData = new QEventData();
return
query.from(eventData)
.innerJoin(
query.from(eventData)
.groupBy(eventData.deviceId)
.list(eventData.deviceId, eventData.timestamp.max())
).on(eventData.deviceId.eq(?))
.where(eventData.deviceId.in("1", "2"))
.list(eventData);
我不知道我为 innerJoin 放了什么。我尝试了 QueryDsl 示例,但找不到正确的示例。我在哪里可以获得 QueryDsl 的好例子?
谢谢,您的回答将不胜感激。