在grails / hibernate中使用uuid或guid作为id
我需要将GUID / UUID作为行的ID列。
这是为了能够在线和离线创建条目,并且合并时当然不会在PK上存在这些冲突。我知道我可以缓解这种情况,但是我想保持简单,并且已有一些遗留应用程序已经在使用uuid
/ guid定义关系。以后还需要双向同步数据。重写现有应用程序不是一种选择。
当我尝试在grails上使用GUID或UUID时,出现错误500。(在h2上使用GUID会导致另一个错误-如预期的那样,数据库不支持GUID)。
当我尝试保存“ WithUUID”时出现此错误:
URI /gtestUUID/withUUID/saveClass 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 gtestuuidclass WithUUID {
String name
static constraints = {
}
static mapping = {
id generator: 'uuid'
}
}
WithUUIDController.groovy:
package gtestuuidclass WithUUIDController {
def scaffold = WithUUID
}
任何帮助将不胜感激。
链接到相关的grails文档
(由于我的代表不高,我无法发布指向更多文档/帖子的链接)
回答:
您需要将id设置为String或UUID(或任何您需要的值)。
下面是我的类User的另一种可能的示例:
import java.util.UUIDclass User {
String id = UUID.randomUUID().toString()
static mapping = {
id generator:'assigned'
}
}
以上是 在grails / hibernate中使用uuid或guid作为id 的全部内容, 来源链接: utcz.com/qa/401765.html