加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

grails中的字符串ID – 如何完成?

发布时间:2020-12-14 16:26:46 所属栏目:大数据 来源:网络整理
导读:有人能告诉我清楚,完整,100%的工作方式将字符串类型的字段设置为grails中的ID吗?我已阅读文档,然后在网上阅读所有类似的咆哮,但未能创建一个工作原型. 这是我尝试让你相信我不只是懒得等待某人做这项工作的尝试之一))) class User { String login static h
有人能告诉我清楚,完整,100%的工作方式将字符串类型的字段设置为grails中的ID吗?我已阅读文档,然后在网上阅读所有类似的咆哮,但未能创建一个工作原型.

这是我尝试让你相信我不只是懒得等待某人做这项工作的尝试之一)))

class User {
  String login
  static hasMany = [apps : Application]

  static constraints = { 
  }

  static mapping = { 
    id generator: 'assigned',name: "login"
  }

}

解决方法

当您使用自然ID时,您必须使用 findBy方法而不是 get方法,如此测试中所示:

def user = new User(login: "test")
assertNotNull user.save(flush: true)

user = User.findByLogin("test")
assertNotNull user
assertEquals "test",user.login

或者,您可以使用单个字段composite id映射:

class User implements Serializable {
    String login

    static hasMany = [apps: Application]

    static constraints = {
    }

    static mapping = {
        id composite: ['login']
    }
}

请注意,实现Serializable需要composite id个域类.

composite id的测试将是:

def user = new User(login: "test")
assertNotNull user.save(flush: true)

user = User.get(new User(login: "test"))
assertNotNull user
assertEquals "test",user.login

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读