I am new to specifications and writing queries using criteria builder. I have a little success writing it for very small queries but not for a large query i needed.
class MessageEntity{
long id;
List<MessageDetailEntity> message_details;
}
class MessageDetailEntity{
long id;
Date created_ts;
}
select * from message msg
inner join message_detail msd on msg.id = msd.message_id
where msd.id =
(select id from message_detail msd1 where msd1.message_id = msg.id order by msd1.created_ts desc limit 1);
Note : There can be many message details for a message
So far, I have made a very little progress
Subquery<MessageDetailEntity> msd = query.subquery(MessageDetailEntity.class);
Root<MessageEntity> sm = smd.from(SecureMessageDetailEntity.class);
Join<MessageDetailEntity, MessageEntity> join = query.join("messageDetails");
Any help is much appreciated. Thank you in advance.