根据用户名过滤数据

时间:2014-07-24 05:18:29

标签: grails groovy

域名类'消息'显示如下:

String name
String age
User user

从以下代码中,我检索已发布的所有邮件。但我真正想要的是显示特定用户的所有消息。例如:user.firstName。我该怎么做?

def messages = Message.listOrderByDate(order: 'asc', max:1000)

println messages.firstName + " BOOOOOOO "

[messages:messages.reverse()]

因此,不是根据用户名显示我想要过滤数据的所有数据。怎么办呢?

2 个答案:

答案 0 :(得分:1)

可以通过以下方式查询:

def results = Message.withCriteria {
  user {
    eq("name", theUserNameYouWantToQuery)
  }
  order("date", "asc")
  maxResults(1000)
}

此示例可以扩展为分组等。请参阅http://grails.org/doc/latest/ref/Domain%20Classes/createCriteria.html

答案 1 :(得分:0)

创建从用户到消息的hasMany关系,如下所示:

class User {
  static hasMany = [messages: Message]
}

class Message{
  String name
  String age
  static belongsTo [user: User]
}

然后使用myUser.messages来获取此用户的所有邮件。