Grails GORM和MYSQL级联删除问题
我有一个表User,在User类下静态hasMany grails中定义了许多子表。
在grails中执行User.get(3).delete()时,我没有问题。 它会自动删除该用户及其所有子表行。 但是当我想在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不知道这里有什么问题。
你在哪里阅读了文档中的“ON DELETE CASCADE”? 我在这里没有找到它。 这篇文章的海报不得不手动添加这个以获得所需的行为。
如果grails真的应该添加这个,你有没有尝试删除数据库,并让它由grails重新创建(至少在开发环境中)? 也许当前的模式是在添加belongsTo之前生成的?
还可以查看关于GORM Gotchas的关于hasMany和belongsTo的博客文章。
链接地址: http://www.djcxy.com/p/24327.html