我被这个问题困住了。代码对我来说看起来不错(显然我遗漏了一些东西。问题是它是什么?)
我有一个项目类
def class project{
...
Manager manager
}
这是 Person 和 Manager 类定义
def class Person{
String firstName
String lastName
}
def class Manager extends Person{
static hasMany = [ projects: Project]
}
关系很简单——一个项目有一个经理,一个经理有很多项目。据我所知,在一对多关系中,保存是级联的,因为它是双向的一对多。但是当我这样做时
Project project = new Project()
Manager mgr = new Manager(...)
project.manager = mgr
project.save()
我收到以下错误原因:org.hibernate.TransientObjectException:对象引用了未保存的瞬态实例 - 在刷新之前保存瞬态实例:管理器
当我这样做时
Project project = new Project()
Manager mgr = new Manager(...)
project.manager = mgr
project?.manager.save()
project.save()
它工作得很好。但我认为 project?.manger.save() 不应该是必需的!