hibernate - GORM:如何将间隔映射到列?

标签 hibernate grails gorm jodatime

我有一个类似于以下使用JodaTime的Interval类的类。 Joda Time Grails插件不支持开箱即用的Interval字段,因此我尝试根据Rob's suggestion how to persist DateTimeTZ自己映射它。

import org.jadira.usertype.dateandtime.joda.PersistentInterval
import org.joda.time.Interval

class Offer {

    Interval time

    static mapping = {
        time type: PersistentInterval, {
            column name: "start_date_time"
            column name: "end_date_time"
        }
    }
}

我的问题是我遇到了以下异常。
Caused by: java.lang.RuntimeException: Cannot treat multi-column property as a single-column property
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrConstructorNewInstance(ReflectiveInterceptor.java:991)
    at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
    ... 111 more

有人知道如何正确映射间隔吗?

最佳答案

我没有Grails应用程序可以尝试,但是在基于J2EE的应用程序中可以使用:

@Columns(columns = { @Column(name = "start_date_time"), @Column(name = "end_date_time") })
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentInterval")
private Interval time;

显然,它并没有使用Groovy和GORM的优点……但是暂时可能是一个可行的解决方案。

关于hibernate - GORM:如何将间隔映射到列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699162/

相关文章:

java - Hibernate 中的组合如何工作?

grails - 哪里条件与grails数组

java - 表不存在 hibernate

java - hibernate 标准 API : get n random rows

java - Hibernate:现实世界中的模式导出?

hibernate - Grails事务问题IllegalStateException key BasicDataSource TransactionSynchronizationManager.bindResource的已有值

grails - Grails/Groovy CRUD服务

string - Grails - sortableColumn - 强制对数字字符串进行数字排序

grails - 在 Grails 标准中使用 groupProperty 和 countDistinct

hibernate - grails 2.4.2 乐观锁定似乎不起作用