Я работаю в Grails. Я пишу код, который удаляет учетную запись определенного вошедшего в систему пользователя после того, как он нажал на ссылку Удалить. Теперь это мой код, найденный в моем контроллере,
def delete = {
def account = springSecurityService.getCurrentUser()
def registrant = Registrant.findByAccount(account)
def loggeduser = registrant.account.username
RegistrantEligibilityInformation.executeUpdate("delete RegistrantEligibilityInformation as rei where rei.registrant in (select reg from Registrant as reg where reg.account.username in(:loggeduser))",[loggeduser:loggeduser])
RegistrantEducationInformation.executeUpdate("delete RegistrantEducationInformation as reduc where reduc.registrant in (select reg from Registrant as reg where reg.account.username in(:loggeduser))",[loggeduser:loggeduser])
Registrant.executeUpdate("delete Registrant as reg where reg.account.username in(:loggeduser)",[loggeduser:loggeduser])
AccountRole.executeUpdate("delete AccountRole as actrole where actrole.account.username in(:loggeduser)",[loggeduser:loggeduser])
Account.executeUpdate("delete Account as act where act.username in(:loggeduser)",[loggeduser:loggeduser])
toolsService.deletion(registrant)
}
У меня есть пять классов доменов: RegistrantEligibilityInformation, RegistrantEducationInformation, Registrant, AccountRole и Account. Каждый раз, когда я запускаю свою программу, я получаю сообщение об ошибке, подобное этому:
URI: /user/profile/delete
Class: org.postgresql.util.PSQLException
Message: ERROR: column reference "id" is ambiguous Position: 49
... который относится к этому коду:
RegistrantEligibilityInformation.executeUpdate("delete RegistrantEligibilityInformation as rei where rei.registrant in (select reg from Registrant as reg where reg.account.username in(:loggeduser))",[loggeduser:loggeduser])
... и я думаю об остальных моих кодах тоже. Я не знаю, что делать, так как я все еще новичок в Grails.