在grails / hibernate中使用uuid或guid作为id

我需要将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'

}

}

以上是 在grails / hibernate中使用uuid或guid作为id 的全部内容, 来源链接: utcz.com/qa/401765.html

回到顶部