前面分享了一些学习grails的心得,可是grails的知识还远不止这些,这次整理了一点有关grails一对多双向关联关系的知识。我认为这样的关联用的地方太多了,这次准备的样例是城市和区域的相关样例。
1.领域模型
class CityInfo {
static hasMany = [area:AreaInfo]
static fetchMode = [area:‘lazy‘]
Integer id;
String name;
String code;
static mapping = {
table ‘m_city‘
}
}
class AreaInfo {
static belongsTo=[city:CityInfo]
Integer id;
String name;
String areaCode;
static mapping = {
table ‘m_area‘
areaCode column:‘areaCode‘
city column: ‘cityId‘
}
}
2.创建控制器和视图
这个步骤就不说了,直接使用intellij IDE就能够自己主动为我们生成控制器和视图了。先来看看生成的控制器能不能用
这说明生成的控制器没有问题,以下加入一个方法用来保存城市和区域信息
//保存城市和区域信息
@Transactional
def saveCityAndArea(){
def a=new AreaInfo()
a.setName("西山区")
a.setAreaCode("XS")
//Set<AreaInfo> s=new HashSet<AreaInfo>()
// s.add(a)
def c=new CityInfo()
c.setName("昆明市")
c.setCode("KM")
c.save()
a.setCity(c)
a.save()
render "数据保存成功"
}接下来我也写了个方法,用来查询对于城市的区域信息:
//查询城市信息
def queryCity(){
def city=CityInfo.findById(params.id)
Set<AreaInfo> area=city.getArea()
Iterator<AreaInfo> it=area.iterator()
def buf=new StringBuffer()
while(it.hasNext()){
AreaInfo info=it.next()
buf.append(info.getName()+",")
}
render buf.toString()
}
原文:http://www.cnblogs.com/gcczhongduan/p/4051423.html