Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 是否忽略所有删除孤立项?_Grails_Gorm - Fatal编程技术网

Grails 是否忽略所有删除孤立项?

Grails 是否忽略所有删除孤立项?,grails,gorm,Grails,Gorm,我必须从excel导入数据库。数据库的一部分如下所示: class Network { String externalId String name static hasMany = [phones: Phone] static mapping = { phones cascade: 'save-update,delete,all-delete-orphan' } } class Phone{ String number static

我必须从excel导入数据库。数据库的一部分如下所示:

class Network {

   String externalId
   String name

   static hasMany = [phones: Phone]

   static mapping = {
      phones cascade: 'save-update,delete,all-delete-orphan'
   }
}
class Phone{

   String number

   static belongsTo = [Network]
}
我还有一个定义excel记录的类:

class NetworkExcelRecord{
   String externalId
   String name
   String phone1
   String phone2

   public def updateDomain() {
      if (!externalId)
         return null
      Network instance = Network.findByExternalId(externalId) ?: new Network()
      instance.properties = this.properties
      if (instance.isDirty() || !instance.id)
        instance.save(failOnError: true,flush: true)
   }

   private def getPhones() {
    def phonesOld = Network.findByExternalId(externalId)?.phones
    def phonesNew = []
    (1..2).collect {this."phone$it"}.eachWithIndex {String phoneNumber, Integer index ->
        if (phoneNumber) {
            Phone phone = phonesOld.find {it.number == phoneNumber}
            if (!phone)
                phone = new Phone(number: phoneNumber)
            phone.sortOrder = index
            phone.save()
            phonesNew << phone
        }
    }
    phonesNew
   }
}
class NetworkExcelRecord{
外部字符串
字符串名
字符串电话1
字符串电话2
public def updateDomain(){
如果(!externalId)
返回空
网络实例=Network.findByExternalId(externalId)?:新网络()
instance.properties=this.properties
if(instance.isDirty()| |!instance.id)
保存(failOnError:true,flush:true)
}
私人电话(){
def phonesell=Network.findByExternalId(externalId)?.phones
def phonesNew=[]
(1..2).收集{this.“phone$it”}.eachWithIndex{String phoneNumber,Integer index->
if(电话号码){
Phone Phone=phonesell.find{it.number==phoneNumber}
如果(!电话)
电话=新电话(号码:phoneNumber)
phone.sortOrder=索引
phone.save()

phonesNew尝试删除
Phone
类中的
belongsTo
。通过在
网络的映射中定义
级联
,您不需要
belongsTo
,因为这只定义了关系的保存-删除级联