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

上一篇: Grails GORM and MYSQL cascade delete problem

下一篇: Permutation implementation in Haskell