【问题标题】:GORM TransientObjectExceptionGORM 瞬态对象异常
【发布时间】:2014-06-04 21:11:17
【问题描述】:

我被一个

困扰着
org.hibernate.TransientObjectException

使用 Grails 2.3.9 和 Grails Hibernate 3 插件 3.6.10.15

具体问题如下:

我有一个名为 Pencil 的域类和一个具有多对多关系的域类 Backpack:

 Pencil{
    PencilType type
    Location location
    Date creationDate
    String description
    int position
    boolean active

    static hasMany = [backpacks: BackPack]
    static belongTo = [backpacks: BackPack]

    static constraints = { .... all nullable ..... }
 }

 BackPack{
    Color color
    int size

    static hasMany = [pencils: Pencil]
    static belongsTo = [pencils: Pencil]

    static constraints = { .... all nullable ..... }
  }

如果我创建并保存铅笔,我无法保存:

org.hibernate.TransientObject Exception
Message: object references an unsaved transient instance - save the transient instance before flushing: Pencil

即使在创建空白铅笔对象时也会发生这种情况。

 new Pencil().save()

--更新-- **同时使用 Hibernate3 和 Hibernate4 Grails 插件时会出现问题。

【问题讨论】:

    标签: hibernate grails grails-orm


    【解决方案1】:

    尝试确保您已使用@TransactionalwithTransaction 正确划分事务边界以进行写入操作。

    【讨论】:

    • 在我保存的服务中,我有 static transactional = true 并且我刚刚使用 @Transactional 注释进行了测试,它仍然会引发瞬态实例异常。我将 Grails 从 2.3.9 回滚到 2.2.5,它保存得很好。
    • 另外,我正在尝试升级到休眠 4 以确保它不是休眠 3 错误或其他东西。但是,使用 hibernate4 时出现错误。关于这个问题,我提出了另一个问题:stackoverflow.com/questions/24050291/grails-hibernate4-upgrade
    猜你喜欢
    • 2011-09-24
    • 1970-01-01
    • 2012-05-06
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多