У меня есть следующий класс домена Grails, содержащий отношение к себе.
class Message {
static hasMany = [replies: Message]
Message isReplyTo
User author
String title
String text
Date createdAt
Date lastUpdated
}
Я хочу написать запрос, который может делать две вещи
Если сообщение является родительским, т. е. не является ответом на какое-либо другое сообщение, получить список сообщений, которые создают диалог, начинающийся с этого сообщения.
Message 1 ---- Reply 1 ---- Reply 2 -------- SubReply 1
Учитывая сообщение, которое является ответом на другое сообщение, также создайте список, как указано выше, включая того родителя, к которому относится данное сообщение (ответ).
Я думал об этом, но не могу придумать возможный способ сделать это, поскольку не существует класса домена Conversations
, который связывает сообщения, принадлежащие к одному и тому же разговору, вместе. Поэтому я надеюсь, что есть какой-то рекурсивный запрос, который поможет мне достичь этого.