这个bug已经在1.1正式版本修复,可以用insert:true来指定是新建对象。
必须在mapping里面指定:
id generator:'assigned', params:[type:'Integer']
不然会提示,没有找到此ID的对象。
有个问题,如果version指定为false,即使指定assigned,
在创建的时候,依然会导致update而不是save。
我解决的方式是用hql的insert来实现的,而没有用.save方法。
如果其他人有更好的方案,请提示,谢谢!
来看看官方给的解释:
Many legacy database files have composite keys and they rarely have a version number or timestamp. The GORM Mapping DSL is fantastic but the Composite ID has an issue when creating a new row. The domain.save() operation causes an SQL update. The problem arises when the version facility is turned off (via version:false) and the Hibernate generator is set to 'assigned' (id generator:'assigned') -- Hibernate is not able to sense that an insert is required.
This plugin adds a method called insert to all domain classes. It is up to the developer to predicate the call to save() or insert().
Note that Grails 1.0.2 provides a more elegant solution. The domain.save() method now accepts domain.save(insert:true) to explicitly predicate the insert operation. So use this plug-in only for Grails applications that are below version 1.0.2.
但是问题是我在1.1beta3版本,尝试使用save(insert:true)依然不起作用。
1.0.4版本是生效的。
分享到:
相关推荐
Grails Grails Grails Grails Grails
Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南
1,设置环境变量GRAILS_HOME(注意大写),过程与“设置环境变量GROOVY_HOME”相似 2,将%GRAILS_HOME%\bin添加到环境变量path中,过程与“将GROOVY_HOME目录下的bin追加到环境变量path中”相似 (如果只想进行...
学习Grails框架时候自己写的例子,自己分页,修改sql查询,带数据库,入门极好的例子。
对遗留数据库进行反向工程到Grails域模型。 将提供一个Java GUI,从中可以选择数据库表并将其映射到grails域对象。
grails-2.1.zip.001
Grails1.1中文文档
grails+Xfire webservice
Grails入门指南中文pdf -- 针对grails1.0.4更新,附加idea8 开发grails的流程
Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。
第1章 寻找grails之旅 1.1 java的困惑 1.2 webc2.0时代 1.3 java的力量 1.4 什么是grails 1.4.1 与java集成 1.4.2 简单而强大 1.4.3 吸取的经验教训 1.5 使用grails的原因 ...
grails 用户登录的例子,必须登录后才可以查看信息,并且只有admin用户才可以创建用户,此例子,只要将grails 的环境配好,就可以用了,用的是自带的数据库,如果需要mysql 可以更改。
Grails 中文 参考手册
grails学习心得 技术经典分享 也许可以帮助你
grails核心源码,版本2.2.2,可以给对grails开发感兴趣的朋友做学习参考。
grails3.2.8 part1
grails-2.3.6
供初学者使用,在grails中只有list(自动生成)中有分页实现,而自己新增的页面中需自己实现分页,该文档中描述了如何实现分页以及注意点
grails grails入门经典 grails入门 grails例子 grails资料 通过自学一点点积累起来的,相信对你有帮助的。
实际上,一个grails插件和一个grails应用基本是完全一样的,同样可以使用grails run-app命令来运行。区别仅在于一个插件的根目录下需要提供一个fooplugin.groovy文件,提供插件的一些描述信息。