0

我是 Grails 的新手,想要一个 id 列作为带有 n 个摘要的 uuid。像:

class Book {
   String id
}

我该怎么做?

4

1 回答 1

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 是摘要的数量。

于 2013-08-02T19:36:40.907 回答