sha*_*unc 4 grails groovy grails-orm
有人能告诉我清楚,完整,100%的工作方式将字符串类型的字段设置为grails中的ID吗?我已阅读文档,然后在网上阅读所有类似的咆哮,但未能创建一个工作原型.
这是我尝试让你相信我不只是懒得等待某人做这项工作的尝试之一)))
class User {
String login
static hasMany = [apps : Application]
static constraints = {
}
static mapping = {
id generator: 'assigned', name: "login"
}
Run Code Online (Sandbox Code Playgroud)
}
当您使用自然ID时,您必须使用findBy方法而不是get方法,如此测试中所示:
def user = new User(login: "test")
assertNotNull user.save(flush: true)
user = User.findByLogin("test")
assertNotNull user
assertEquals "test", user.login
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用单个字段组合ID映射:
class User implements Serializable {
String login
static hasMany = [apps: Application]
static constraints = {
}
static mapping = {
id composite: ['login']
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,实现Serializable需要复合ID域类.
复合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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4056 次 |
| 最近记录: |