0

jodaLocalDateのリストをgrailsに保持しようとしています。私が今持っているのは次のようなものです:

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 でネイティブにサポートされているタイプではないため、データベースへのタイプのマッピングに注意する必要があります。トピックをカバーするこのガイドを見てください。

User Typeライブラリを使用すると、クラスは次のようになります。

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

「fechas」を localDate を使用して別のドメインとして定義し、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 に答える