Grails控制台插件(意外结果)

Grails控制台插件(意外结果),grails,Grails,我有两个领域类别: class Persona { String nombre String apellidos static hasMany = [pertenencias: Pertenencia] static constraints = { } static mapping = { pertenencias cascade: "all-delete-orphan" } } class Pertenenc

我有两个领域类别:

class Persona {

    String nombre
    String apellidos

    static hasMany = [pertenencias: Pertenencia]

    static constraints = {

    }

    static mapping = {
        pertenencias cascade: "all-delete-orphan"
    }
}


class Pertenencia {

    String nombre
    static belongsTo = [persona:Persona]

    static constraints = {
    }
}
服务:

class MembresiaService {

@Transactional
    def saveAll() {
        def p = new Persona(nombre: 'carlos', apellidos: 'gm')
        p.addToPertenencias(nombre: 'auto')
        p.addToPertenencias(nombre: 'computadora')
        p.addToPertenencias(nombre: 'casa')
        p.save()
    }

    @Transactional
    def deletePertenencias() {
        def p = Persona.get(1)
        p.pertenencias?.clear()
    }
}
以及控制器:

class TestController {
    def membresiaService

    def index() {}

    def saveAll() {
        membresiaService.saveAll()
        redirect(action: "index")
    }

    def deletePertenencias() {
        membresiaService.deletePertenencias()
        redirect(action: "index")
    }
}
当我从控制器执行
saveAll()
方法时,它会将数据保存在数据库中;当我从控制器执行
deletePertenencias()
时,它会从数据库中删除角色的“pertenencias”集合(如预期的那样)

我已经安装了,第一次在控制台中执行
saveAll()
服务方法的行时,结果是数据库中的“persona”及其“pertenencia”。然后我在控制台中执行
deletePertenencias()
服务方法的行,但它不删除数据库的数据,“persona”对象包含“pertenencias”(好像我没有运行deletePertenencias()代码)

有人知道为什么从控制台执行的代码会产生意外的结果吗?
我希望控制器和控制台的结果相同,但行为不同。

在服务中,
saveAll()
创建新的
Persona
Pertenencia
实例。和
deletePertenencias()
始终清除
pertenencias
集合,但仅针对ID为1的
Persona
实例。这是实际代码的工作方式,还是示例中的错误?为了简单起见,我从id 1重新启动grails进行测试