我需要将GUID / UUID作为行的ID列。
这是为了能够在线和离线创建条目,并且合并时当然不会在PK上存在这些冲突。我知道我可以缓解这种情况,但是我想保持简单,并且已有一些遗留应用程序已经在使用uuid / guid定义关系。以后还需要双向同步数据。重写现有应用程序不是一种选择。
当我尝试在grails上使用GUID或UUID时,出现错误500。(在h2上使用GUID会导致另一个错误-如预期的那样,数据库不支持GUID)。
当我尝试保存“ WithUUID”时出现此错误:
URI /gtestUUID/withUUID/save Class java.lang.IllegalArgumentException Message argument type mismatch
整个错误500:http: //imgur.com/m2Udbm6.png
我试过了mariadb 5.5和1.1.7驱动程序,这导致了同样的问题。
Grails 2.3.8。Windows 8.1(x64)。Netbeans 7.4
全部默认。
示例类:
WithUUID.groovy:
package gtestuuid class WithUUID { String name static constraints = { } static mapping = { id generator: 'uuid' } }
WithUUIDController.groovy:
package gtestuuid class WithUUIDController { def scaffold = WithUUID }
任何帮助将不胜感激。
链接到相关的grails文档
(由于我的代表不高,我无法发布指向更多文档/帖子的链接)
您需要将id设置为String或UUID(或任何您需要的值)。
下面是我的类User的另一种可能的示例:
import java.util.UUID class User { String id = UUID.randomUUID().toString() static mapping = { id generator:'assigned' } }