0

我正在尝试从 grails 中的 3 个域中获取列表(类似于任何常规编程语言中的内部连接)

这是我的域名

class Category{
    Integer id
    String name  
}
class Tag{
    Integer id
    String name  
}
class Content{
    Integer id
    Category category
    Tag tag
    String text
}
//--------
def contentInstance = Content.findAllWhere(id:id.toInteger())

我希望列表中的 Content.text、Category.name 和 Tag.name 能够在 View 中显示 谢谢

4

1 回答 1

2

您可以使用条件查询 api 来选择自定义列。你可以像这样使用:

Content.withCriteria {
projections {
  property('text')
    category {
      property('name')
    }
    tag{
      property('name')
    }
  }       
}

或者您可以创建别名,例如:

Content.withCriteria {
createAlias("category","categoryAlias")
createAlias("tag","tagAlias")
projections {
  property('text')
  property('categoryAlias.name')
  property('tagAlias.name')

} 
and{
    eq('category.id','categoryAlias.id')
    eq('tag.id','tagAlias.id')
  }    
}

希望你有这个想法...

于 2013-05-13T06:58:55.567 回答