【发布时间】:2014-07-17 08:01:25
【问题描述】:
这是 Person 的域类:
package com.sample
class Person {
String id
String name
Integer age
Address address
static hasMany = [pets:Pet, alias: String, aliases : Alias]
static mapWith = "mongo"
static constraints = {
address nullable:true
pets nullable :true
}
}
这是地址的域类:
package com.sample
class Address {
String address
static mapWith = "mongo"
static constraints = {
address maxSize: 1000
}
}
这是 PersonController 中的 ShowPerson 方法:
def showPerson(String name,String age){
if(Person.findByAgeAndName(age,name) != null) {
render Person.findByAgeAndName(age,name) as JSON
}
else {
def addobj = new Address(address: "kondapur")
addobj.save(flush:true)
def pet1 = new Pet(name : "Dog", breed : "A")
pet1.save(flush:true)
def alias1 = "ALIAS1"
def alias2 = "ALIAS2"
def list = ["A"]
def aliases1 = new Alias(aliasname : [list])
aliases1.save(flush:true)
def person = new Person(name : name, age : age, address : addobj, pets : [pet1], alias : [alias1, alias2], aliases : [aliases1])
person.save()
render person as JSON
}
}
最初数据库中没有人员(这意味着Person.findByAgeAndName(age,name) == null)因此它创建一个新对象并将其保存在数据库中)。所以当我点击网址时
> http://localhost:8080/TestJson/showPerson/sample/23
现在的输出是:
现在当我重新点击同一个 url 时(暗示 Person.findByAgeAndName(age,name) != null) 因此它从数据库中获取):
现在的输出是:
在数据库中地址保存为:
在数据库中,人被保存为:
谁能告诉我,当我尝试从数据库中获取保存的对象时(即在本例中为 kondapur 而不是 null),我如何才能将地址(以红色圈起来)设为非 null 并获取相应的值
【问题讨论】:
-
好问题详解+1
-
我在
Address中看不到name字段。 -
域类地址中的“字符串地址”是我所指的
标签: grails groovy grails-orm grails-2.0