0

我的域模型的一部分Conversation有很多ChatMessage

在我的 index.gsp 中,我有以下内容:

<g:each in="${allConversations}" var="conversation">
        ${conversation.chatMessages}
    </g:each>

显示特定用户的所有对话,将聊天消息输出为

[hi, how are you][another convo, hi again]

这是正确的结果。但我只想得到每个对话的第一条消息。我试过了

${conversation.chatMessages[0]}

${conversation.chatMessages.get(0)}

但无济于事。什么是正确的语法?

4

1 回答 1

2

如果您希望能够通过索引引用对话中的单个消息,那么您需要将关联声明为列表:

class Conversation {
  static hasMany = [chatMessages: ChatMessage]

  List chatMessages

  // constraints, mapping, other properties...
}

如果你只有hasMany没有,List chatMessages那么关联将被映射为一个集合而不是一个列表,它允许你迭代但不能通过索引访问。

请参阅grails 文档中的集合、列表和地图以获取完整的详细信息。

于 2013-03-10T12:31:55.957 回答