У меня есть следующие классы домена
class EventA {
static belongsTo = [offer: Offer]
}
class EventB extends EventA {}
class EventC extends EventA {}
class Offer {
static hasMany [events: EventA]
}
Мне нужно получить предложения, которые не связаны с EventC
.
В SQL это можно легко выполнить как:
SELECT *
FROM OFFER O
LEFT JOIN EVENTC C ON O.event_id = C.id
WHERE C.ID IS NULL
Просматривая документацию по grails, я нашел instanceOf .Заявив, что после того, как у вас есть набор результатов, вы можете выполнить проверку типа экземпляра.
def offers = Offer.list()
for (Offer o in offers) {
for(Event e : o.events) {
if (e.instanceOf(EventC)) {
// no bueno
}
}
}
Сказанное выше кажется неправильным.Я бы предпочел, чтобы база данных делала такую фильтрацию для меня.Есть ли способ выполнить такой фильтр с searchCriteria
?