我是Grails的新手,并希望将id列作为带有n个摘要的uuid。喜欢:
class Book {
String id
}
我该如何完成?
答案 0 :(得分:0)
您可以使用以下内容:
class Book {
String id
static constraints = {
id maxSize: 18
}
static mapping = {
id generator:'assigned'
}
def beforeValidate() {
if (!id) {
String uuid = UUID.randomUUID().toString()
MessageDigest sha1 = MessageDigest.getInstance("SHA1")
byte[] digest = sha1.digest(uuid.getBytes())
def tmpId = new BigInteger(1, digest).toString(16)
id = tmpId[0..n] // size of the id
}
}
}
其中n是摘要的数量。