Grails单向约束

时间:2011-08-25 16:22:50

标签: grails dns constraints gorm

目前我在验证/保存时强制执行外键约束时出现问题。我已经尝试过集成测试和单元测试。单元测试模拟域,集成测试没有。问题是,即使domainB未保存在数据库中,DomainA也可以成功验证DomainB中其中一列的外键约束。将进行保存,并且在事务完全运行之前不会出现问题。我对添加单向关系的理解是,validate方法将查询数据库以检查对象(在本例中为domainB)是否存在。我的理解是不正确的,我必须自己进行验证吗?

class DomainA
{
  String id
  DomainB domainB
  static constraints =
  {
    id unique:true
    collection nullable:false
  }
  static mapping =
  {
    domainB column:"id_column_name"
  }
 }

 class DomainB
 {
   String id
  static constraints = {
   id unique : true
  }
 }

测试伪代码

Create DomainB object.  Do not save
Create DomainA object, with DomainB object set as the referenced object
Attempt to validate DomainA object  //succeeds without issue
Attempt to save DomainA object  //fails on flush in integration test

0 个答案:

没有答案