`
seanwon
  • 浏览: 63699 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GRAILS 1.1 的一些问题列表

阅读更多
1、GSQL的eachRow方法会造成StackOverError
2、beforeUpdate设置以后,会导致更新不能正常工作(不更新)
3、hasMany的问题 (自己关联自己,需要知道parent和childs,指定parent和hasMany),如果删除会出现deleted object would be re-saved by cascade.

4、many-to-many升级到1.1的时候,出现ID冲突异常,导致原因是dbCreate='update',而造成了多个外键(相同字段).
先把问题列出来,具体的原因和解决方法稍后给出。
分享到:
评论
8 楼 liqiang0219 2009-04-22  
我仔细看了看,确实是某个一对多的关系没有设置belongsTo,重新设置了一下能删除了。真是感谢你啊!呵呵,有机会再交流!
7 楼 seanwon 2009-04-22  
把代码放上来,我看看。
6 楼 liqiang0219 2009-04-21  
static belongsTo = [parent:Menu] 这个都定义了,都是双向的,并且有belongsTo设置。奇怪的是,我在grails自动生成的编辑页面来删除某个根menu,与其连带的所有设置了belongsTo的对象都能正确的删除。不报任何错误。但是,当我自己写一段代码,当某种条件符合的时候,想删除根menu,就报错了。就连代码我都是从grails自动生成的delete action中复制过来的。结果却不一样。郁闷!呵呵
5 楼 seanwon 2009-04-20  
如果是刚刚的方式,就需要递归了。

最终解决方案:

static belongsTo = [parent:Menu]


这种方式我已经测试通过了。
4 楼 seanwon 2009-04-20  
可能还需要加上
menuInstance.items.each {
  it.delete()
}
3 楼 liqiang0219 2009-04-20  
谢谢你的答复,我现在如果要删除Menu的根的时候还是报错,而且item下面还有一对多的关系,想删除根Menu后,与之对应的所有的内容全部删除。
2 楼 seanwon 2009-04-20  
第三个问题,很早解决了,有点忘记怎么改的了。
简单说一下我现在的做法:

Domain类:
class Menu {
   Menu parent
   static hasMany = [items:Menu]
}

Controller类删除方法的片段:

def menu = Menu.get(id)
if(menu){
  menu.parent.removeFromItems(menu)
  menu.delete()
}


如果是1.0升级到1.1,而且对应的表结构是GRAILS自动生成的,建议把表和关联关系删除,重新让GRAILS自动生成一次,避免一些冲突。

如果还有问题,可以一起探讨。
1 楼 liqiang0219 2009-04-19  
第三个问题我遇到了,不知道如何解决。请赐教!

相关推荐

Global site tag (gtag.js) - Google Analytics