【发布时间】:2019-06-19 17:53:40
【问题描述】:
我有以下域类
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
搜索我发现instanceOf 的grails 文档。说明一旦获得结果集,您就可以检查实例类型。
def offers = Offer.list()
for (Offer o in offers) {
for(Event e : o.events) {
if (e.instanceOf(EventC)) {
// no bueno
}
}
}
以上只是感觉不对。我宁愿让数据库为我做这样的过滤。有没有办法用searchCriteria 执行这样的过滤器?
【问题讨论】:
标签: grails grails-orm grails-2.0