在JPQL子查询中执行MySQL LIMIT

我有下面的三个表,需要保留它们以检索详细信息。

表A

messageId | senderName

表B

messageId |内容

表C

messageId | eventTime |状态

表A和表B具有一对一的关系,表A和表C具有一对多的关系。 我需要在所有3个表上创建一个左联接,以从表C中检索所有具有最新状态的表的值

邮件ID将在下表中

在JPQL子查询中执行MySQL LIMIT

我创建了以下JPQL查询,可用于检索所有三个实体。

select d,e,s from TableA a
left join TableB b on a.messageId = b.messageId
left join TableC c on a.messageId = c.messageId
and c.status = (select st.status from TableC st where st.messageId = a.messageId order by st.eventTime DESC limit 1)

但是由于限制,我无法在查询中使用JPQL查询。 有什么方法可以格式化此查询以使其作为JPQL查询运行? (JPA中的本机查询除外)

lhp1231 回答:在JPQL子查询中执行MySQL LIMIT

据我所知,您实际上不能限制JPQL中子查询的结果。最好的选择可能是创建一个视图,该视图将执行您的子查询,或者在您的情况下甚至是整个查询,然后从该视图中进行选择。

本文链接:https://www.f2er.com/3168326.html

大家都在问