【问题标题】:grails domain mappedBy "none" not working on unit testgrails domain mappedBy“none”在单元测试中不起作用
【发布时间】:2015-03-26 06:25:01
【问题描述】:

当前使用 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

【问题讨论】:

    标签: unit-testing grails grails-orm


    【解决方案1】:

    不要将单元测试用于持久性测试。

    在单元测试中使用的 GORM 实现不使用数据库,仅使用 ConcurrentHashMap。大多数核心 GORM 功能都受支持,但正如您所见,存在差距。

    要正确测试持久性,请使用集成测试,默认情况下使用内存中的 H2 数据库,但在 DataSource.groovy 中将其更改为测试 MySQL/Postgres/etc 很简单。数据库,如果你愿意的话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      相关资源
      最近更新 更多