Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails removeFrom正在删除我的所有多对多关联_Grails_Gorm - Fatal编程技术网

Grails removeFrom正在删除我的所有多对多关联

Grails removeFrom正在删除我的所有多对多关联,grails,gorm,Grails,Gorm,我使用的是Grails1.2,并设置了以下多对多关系: class Employee { static belongsTo = Store static hasMany = [stores:Store] } class Store { static hasMany = [employees:Employee] } 我在Bootstrap.groovy中植入了一些数据: store1.addToEmployees(employee1).save() store1.add

我使用的是Grails1.2,并设置了以下多对多关系:

class Employee {
    static belongsTo = Store
    static hasMany = [stores:Store]
}

class Store {
    static hasMany = [employees:Employee]
}
我在Bootstrap.groovy中植入了一些数据:

store1.addToEmployees(employee1).save()
store1.addToEmployees(employee2).save()
store1.addToEmployees(employee3).save()
这将产生以下DB数据:

| store_employees | 
----------------------------------
| store_id        | employee_id   |
|    1            | 1             | 
|    1            | 2             |
|    1            | 3             |
----------------------------------
接下来,我尝试从商店中删除一名员工:

store.removeFromEmployees(employee1).save()

这将导致所有员工被解雇。我把关系安排错了还是怎么了

嗯,我没有遇到同样的问题

当我使用控制台插件运行此代码时:

Store.list()*.delete() //clear so you can run script multiple times
Employee.list()*.delete()   //clear so you can run script multiple times

store1 = new Store().save()
 employee1 = new Employee()
 employee2 = new Employee()
 employee3 = new Employee()

store1.addToEmployees(employee1).save()
store1.addToEmployees(employee2).save()
store1.addToEmployees(employee3).save(flush:true)


Store.list()[0].removeFromEmployees(Employee.list()[0]).save()
DB的结果状态(第一个添加的员工被删除):


嗯,我没有遇到同样的问题

当我使用控制台插件运行此代码时:

Store.list()*.delete() //clear so you can run script multiple times
Employee.list()*.delete()   //clear so you can run script multiple times

store1 = new Store().save()
 employee1 = new Employee()
 employee2 = new Employee()
 employee3 = new Employee()

store1.addToEmployees(employee1).save()
store1.addToEmployees(employee2).save()
store1.addToEmployees(employee3).save(flush:true)


Store.list()[0].removeFromEmployees(Employee.list()[0]).save()
DB的结果状态(第一个添加的员工被删除):


我没有使用控制台,但在引导和集成测试中编写了代码。无法重现该问题。Grails1.2I没有使用控制台,而是在引导和集成测试中编写了代码。无法重现该问题。Grails 1.2删除后保存前的状态是什么?i、 e.将最后一行改为:store.removeFromEmployees(employee1);println store.employees;store.save();println store.employees;编辑:添加分号。忘记了注释中的格式错误。删除后保存前的状态是什么?i、 e.将最后一行改为:store.removeFromEmployees(employee1);println store.employees;store.save();println store.employees;编辑:添加分号。忘记了注释中糟糕的格式设置。