目前正在使用Grails 2.4.4
我正在尝试保存我的模型而不使用它们假设双向关系。所以我添加了mappedBy [field:'none']
。但它不是在进行单元测试。它在我运行应用程序时有效,但是当我运行单元测试并保存域时,它们总是采用双向关系。
考虑例子(为了简单起见省略了约束,考虑可以为空的字段):
class User {
Organization organization
static mappedBy = [organization: 'none']
}
class Organization {
User leader
static mappedBy = [leader: 'none']
}
每当我做的时候:
def user = new User().save()
def organization = new Organization(leader: user).save()
user.organization = organization
user.save()
def organization2 = new Organization(leader: user).save()
// now user's organization becomes organization2
答案 0 :(得分:0)
不要将单元测试用于持久性测试。
单元测试中使用的GORM实现不使用数据库,只使用ConcurrentHashMap
。支持大多数核心GORM功能,但正如您所看到的那样存在差距。
要正确测试持久性,请使用集成测试,默认情况下使用内存中的H2数据库,但在DataSource.groovy中将其更改为测试MySQL / Postgres /等是很简单的。数据库,如果你愿意。