2013-03-19 67 views
0

我試圖在grails中保留joda LocalDate的列表。我現在所擁有的是這樣的:使用GORM保留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屬性嘗試過,但不工作或者(只是didnt添加任何東西)

回答

0

如何定義你的「fechas」與另一LOCALDATE域和創造的hasMany關係:

是這樣的:

/Evento.groovy

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

/Fecha.groovy

import org.joda.time.LocalDate 

class Fecha { 

    LocalDate date 

} 
+0

這是我第二次選項,但我發現它太雜亂,增加了一個額外的領域類無線只有一個屬性 – user1485182 2013-03-20 10:46:47

1

由於Alidad建議你應該換行與LOCALDATE一個新的實體,與這個實體的一對多的關係。 此外,您將不得不負責將LocalDate類型映射到數據庫,因爲這不是Hibernate本身支持的類型。看看這個涵蓋主題的guide

使用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' 
    } 
+0

嗨,謝謝你的快速回答。我試過你的解決方案,但沒有發生任何事該錯誤消失了,但LocalDate不堅持在數據庫 – user1485182 2013-03-20 09:52:32

+0

我修復了我的答案。習慣於思考MongoDB的方式而不是關係數據庫的方式。 – 2013-03-20 14:11:12