如何在Persistent Set - Grails中的特定索引处获取对象

时间:2015-04-14 16:25:17

标签: grails set

我有一组持久的对象:

def applicantFiles = applicant.recommendationFiles

如何从持久集中获取第i个元素的对象?我试着做

applicantFiles[1] and applicantFiles.getAt(1)

两者都不起作用。

1 个答案:

答案 0 :(得分:2)

无法对集合建立索引,它们是无序的。如果您需要索引集合,请declare it as a list

  

要按照添加顺序保留对象并且能够通过索引(如数组)引用它们,您可以将集合类型定义为List:

class Author {

    List books

    static hasMany = [books: Book]
}

理解关联表需要一列用作索引。否则就无法保留订购。您可以使用indexColumn指定要使用的列:

  

默认情况下,在映射索引集合(如Map或List)时,索引存储在名为association_name_idx的列中,在列的情况下为整数类型,在映射的情况下为String。您可以使用indexColumn参数更改索引列的映射方式:

static mapping = {
    matrix indexColumn: [name: "the_matrix", type: Integer]
}

http://grails.github.io/grails-doc/2.3.x/ref/Database%20Mapping/indexColumn.html

如果未使用类型声明实例变量,则GORM默认类型为Set。