我想知道如何通过搜索返回特定域名? 例如,我们有域A和B.两个域都是可搜索的并且有关系:A有很多B,B属于A.另一个案例A和B有多对多的关系。
现在当我搜索项目时,我必须总是返回一个项目。在我的情况下,让我说我在B中找到了匹配,我需要为每个B返回所有的As。其他方式应该也可以。
目前我做的搜索查询是可搜索的服务:
def searchResults = searchableService.search(params.q, params)
有没有办法为任何搜索结果获取所有相关的A域?
谢谢。
答案 0 :(得分:2)
使您的域(A& B)可搜索,然后在可搜索的属性中添加DomainObject component:true
。
class A{
String name
static hasMany = [bclass: B]
static searchable = {
bclass component: true
}
}
class B{
String color
static belongsTo= [aclass: A]
static searchable = true
}
假设在 B 中有一些行颜色字段值为'red'
A.search("red")
将返回 A 的所有实例,其子类 B 且颜色字段值为“红色”