Я бы хотел выполнить HQL-запрос (через @Query
Spring Data), который выбирает из message
записи, которые имеют значение в поле a
, соответствующее значению последнего сообщения, а также соответствуют определенным условиям в других полях.
Наиболее очевидный подход, как я вижу, состоит в том, чтобы использовать подзапрос, который максимизирует записи по полю createTime
, группирует их по a
и затем обращается к этому столбцу из подзапроса.Тем не менее, я не могу создать HQL, который будет компилироваться.Есть ли способ сослаться на столбцы подзапроса, или я должен попробовать другой подход для решения этой проблемы?
Выражение HQL, которое я пытался использовать:
select m from Message m where m.a = (
select m2.a, max(m2.createTime) from Message m2
where ... (additional conditions)
).a
К сожалению, оно бросило java.lang.NullPointerException
во время компиляции.