从2.2.x升级到2.3.x之后,我的Grails项目正在遇到一些奇怪的行为。我有三种用于典型CMS功能的简单域类型:Post,Category,Tag,以使Post具有许多Category和Tag。
static hasMany = [categories: Category, tags: Tag]
创建帖子时,用户从g:select ... multiple =“multiple”中选择适用的类别。每个类别在多选中仅显示一次。但是现在,查询特定类别的帖子的查询将返回同一帖子的多个条目。查看由Grails创建的MySQL数据库联接表“post_category”,我看到确实存在多个条目:
Post_categories_id | category_id
-------------------|------------
30000 | 1
30000 | 1
30000 | 2
30000 | 2
有没有人看到过类似的行为?关于修复的建议?现在,我只是通过SQL手动清理重复项。
最佳答案
进行升级时,我没有类似的行为。但是,老实说,我不记得hasMany关系的样子。几个问题/注意事项:
我会继续四处看看。如果您为发布,类别和标记发布域,则可能会有所帮助。只需要重要的内容(约束,静态hasMany映射和属性本身)。
此外,您可以打开详细日志记录,并在创建新帖子时查看正在运行的SQL语句。我的猜测是这里正在发生。从创建帖子的 View 到post.save()调用的流程摘要也可能会有所帮助。
关于grails - Grails 2.3.x升级产生重复hasMany关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20476385/