Проблема Grails GORM и MYSQL каскадного удаления - PullRequest
3 голосов
/ 09 декабря 2010

У меня есть таблица User, у которой есть много дочерних таблиц, определенных в классе User под статическим graM. HasMany.

У меня нет проблем при выполнении User.get (3) .delete () в grails.Он автоматически удаляет этого пользователя и все строки его дочерней таблицы.Но когда я хочу выполнить ту же операцию в рабочей среде MySQL.MySQL выдает ошибку:

ERROR 1451: Cannot delete or update a parent row: a foreign key constraint fails (`test_db`.`search_stat`, CONSTRAINT `FK7A3CFFB6E64DB41` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))
SQL Statement:
DELETE FROM `test_db`.`user` WHERE `id`='3'

Я не знаю, в чем здесь проблема с MySQL.

1 Ответ

1 голос
/ 11 декабря 2010

Где вы прочли про "УДАЛЕННЫЙ КАСКАД" в документации? Я не нашел это здесь . Постер этого поста должен был также добавить это вручную, чтобы получить желаемое поведение.

Если Grails действительно должен добавить это, вы пытались удалить базу данных и создать ее заново Grails (по крайней мере, в среде разработки)? Может быть, текущая схема была сгенерирована до того, как вы добавили принадлежность или что-то еще?

Также ознакомьтесь с этим сообщением в блоге о GORM Gotchas относительно hasMany и относится к.

...