我有一组持久的对象:
def applicantFiles = applicant.recommendationFiles
如何从持久集中获取第i个元素的对象?我试着做
applicantFiles[1] and applicantFiles.getAt(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。