Grails在多对多关系的联接表中持久化数据时遇到问题
我在持久化与联接表有多对多关系的域对象时遇到问题Grails在多对多关系的联接表中持久化数据时遇到问题,grails,groovy,persistence,Grails,Groovy,Persistence,我在持久化与联接表有多对多关系的域对象时遇到问题 class A{ String name static hasMany = [bs:B] } class B{ String surname static belongsTo=A static hasMany=[as:A] } A a = new A(name:'Test') B b = new B(surname:'user') a.addToBs(b) a.save(flush:true) 那么我希望看到的是 Table A
class A{
String name
static hasMany = [bs:B]
}
class B{
String surname
static belongsTo=A
static hasMany=[as:A]
}
A a = new A(name:'Test')
B b = new B(surname:'user')
a.addToBs(b)
a.save(flush:true)
那么我希望看到的是
Table A Table AB Table B
id name a_id b_id id surname
1 Test 1 1 1 User
但是,数据仅保留在表A中
有人知道我做错了什么吗
谢谢我找到了这个链接,它显示了映射多对多关系的清晰方式
我仍然无法让它以我目前想要的方式工作我找到了这个链接,它显示了映射多对多关系的清晰方式
我还没能让它按我目前想要的方式工作我试着模仿你的代码,并为我进行级联 A类:
package searcher
class A {
String name
static hasMany = [bs:B]
static constraints = {
}
public String toString() {
def s = "Name: $name\n Bs: "
bs.each {
s = "$s $it "
}
return s
}
}
B类:
package searcher
class B {
String surname
static belongsTo = A
static hasMany = [as:A]
static constraints = {
}
}
控制器源:
package searcher
class ManyController {
def ab = {
A a = new A(name:'Test')
B b = new B(surname:'user')
a.addToBs(b)
a.save(flush:true)
render A.list()
}
}
产生输出:
[名称:测试Bs:searcher.B:1]
我没有遇到您遇到的问题,但我确实遇到了一些最初的问题,通过执行
grails clean
修复了这些问题。您是否尝试过各种数据库配置?我只是使用内存中的hsqldb集来创建drop。如果您使用的是我碰巧安装的DBMS,我会尝试将其指向另一个数据库,并对其进行一次尝试。我尝试模仿您的代码,并对其进行级联
A类:
package searcher
class A {
String name
static hasMany = [bs:B]
static constraints = {
}
public String toString() {
def s = "Name: $name\n Bs: "
bs.each {
s = "$s $it "
}
return s
}
}
B类:
package searcher
class B {
String surname
static belongsTo = A
static hasMany = [as:A]
static constraints = {
}
}
控制器源:
package searcher
class ManyController {
def ab = {
A a = new A(name:'Test')
B b = new B(surname:'user')
a.addToBs(b)
a.save(flush:true)
render A.list()
}
}
产生输出:
[名称:测试Bs:searcher.B:1]
我没有遇到您遇到的问题,但我确实遇到了一些最初的问题,通过执行
grails clean
修复了这些问题。您是否尝试过各种数据库配置?我只是使用内存中的hsqldb集来创建drop。如果您使用的是我碰巧安装的DBMS,我会尝试将其指向另一个数据库并对其进行旋转。谢谢您的帮助,您的示例很有效。我发现我的问题是,我的“a”类中有一个与关系名“bs”同名的列表,grails似乎不喜欢它。一旦我更改了列表的名称,级联保存就很好了。谢谢你的帮助,你的示例很好用。我发现我的问题是,我的“a”类中有一个与关系名“bs”同名的列表,grails似乎不喜欢它。一旦我更改了列表的名称,级联保存工作正常