0

我正在尝试在 grails 中保留 joda LocalDate 列表。我现在拥有的是这样的:

package com.publidirecta

import org.joda.time.LocalDate

class Evento {

    List <LocalDate> fechas = []

    static hasMany = [fechas:LocalDate]
}

我收到以下错误:

MappingException: Missing type or column for column[fechas_persistent_local_date] on domain[Evento] referencing[org.jadira.usertype.dateandtime.joda.PersistentLocalDate]
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    166 | run       in java.util.concurrent.FutureTask
|   1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    603 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    722 | run . . . in java.lang.Thread

我试过没有 hasMany 属性,但也不起作用(只是没有添加任何东西)

4

2 回答 2

1

正如 Alidad 建议的那样,您应该用新实体包装 LocalDate 并与该实体建立多对多关系。此外,您必须注意将LocalDate类型映射到数据库,因为这不是 Hibernate 本身支持的类型。查看涵盖该主题的本指南。

使用用户类型库,您的类应该类似于:

package com.publidirecta

class Evento {

    static hasMany = [fechas: Fecha]

    List <Fecha> fechas = []
}

import org.jadira.usertype.dateandtime.joda.PersistentLocalDate
import org.joda.time.LocalDate

class Fecha {
    LocalDate date

    static mapping = {
        date type: PersistentLocalDate
    }
}

确保将以下内容添加到您的BuildConfig

dependencies {
        compile 'org.jadira.usertype:usertype.jodatime:1.9'
    }
于 2013-03-19T18:20:13.970 回答
0

如何使用 localDate 将您的“fechas”定义为另一个域并创建 hasmany 关系:

像这样的东西:

/Evento.groovy

class Evento  {
 static hasMany = [fechas: Fecha]
}

/Fecha.groovy

import org.joda.time.LocalDate

class Fecha  {

    LocalDate date

}
于 2013-03-19T18:07:20.307 回答