一对一关联关系开发中用的没有一对多那么广泛。可是我认为掌握以下还是有必要的。一对一关联关系有一张表存在外键,引用的通常是主表的主键。grails也对一对一关联关系提供了非常好的支持。配置也是简单的不得了。grails配置一对一能够有以下三种选择:

class Face {
Nose nose
}
class Nose {
}

这样的属于单向关联。以下的这样的则是双向关联。可是不能级联更新

class Face {
Nose nose
}
class Nose {
Face face
}

接下来这样的我认为比較好用。能够级联保存和更新

class Face {
Nose nose
}
class Nose {
static belongsTo = [face:Face]
}

那假设使用了单向关联又要使用级联保存和更新。推荐使用以下这样的

class Face {
Nose nose
}
class Nose {
static belongsTo = Face
}

以下就是我的样例了。我使用的是第三种,这样的情况是双向关联还能够级联保存和更新

1.创建领域对象

class PersonInfo {
Integer id;
String name;
CardInfo card;
static mapping = {
table 'm_person'
card column: 'cardId'
}
}
class CardInfo {
Integer id;
String birthday;
static belongsTo = [person:PersonInfo]
static mapping = {
table 'm_card'
}
}

person就是主表了,card是从表。这点和hibernate有些许差异

2.通过控制器级联保存person和card

  @Transactional
def savePersonAndCard(){
def p=new PersonInfo()
p.setName("caiyil") def c=new CardInfo()
c.setBirthday("2008-01-03") p.setCard(c)
p.save() render "数据保存成功"
}

以下我还写了个方法,通过这种方法能够取得person的birthday

 //通过person查询birthday
def queryPersonBirthday(){
def personId=params.id
def p=PersonInfo.get(personId)
render p.getCard().getBirthday()
}

对于多对多这样的情况,grails也是支持的可是要记住的是多对多须要有一方维护关联关系,这一点能够參考grails开发文档

grails一对一关联关系的更多相关文章

  1. Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...

  2. Hibernate映射一对一关联关系

    映射一对一关联 Hibernate提供了两种映射一对一关联关系的方式,分别是按照外键映射和按照主键映射. 下面是员工表和档案信息表(员工和档案表之间的关系是一对一的关系)  档案表(dept) pub ...

  3. 一对一关联关系基于主键映射的异常 IdentifierGenerationException

    具体异常:org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one pro ...

  4. Hibernate关联关系映射之一对一关联关系

    人和身份证之间就是一个典型的一对一关联关系.实现一对一关联关系映射的方式有两种一种是基于外键,一种是基于主键,下面我们先看基于外键的关联方式 首先看他们的实体类 Person类 ? 1 2 3 4 5 ...

  5. Hibernate 一对一关联关系

    双向一对一关联关系: 域模型: 例如,部门只有一个部门经理,一个经理也只能管理一个部门.即,Department 中有一个Manager的引用,Manager 中又有一个Department 的引用. ...

  6. mybatis一对一关联关系映射

    mybatis一对一关联关系映射 在关联关系中,有一对一,一对多,多对多三种关联关系. 一对一关系:在操作上,任意一方引入对方的主键作为外键. 一对多关系:在"多"的一方添加&qu ...

  7. hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系

    hibernate环境配置:导包.... 单向n-1:单向 n-1 关联只需从 n 的一端可以访问 1 的一端 <many-to-one> 元素来映射组成关系: name: 设定待映射的持 ...

  8. hibernate 一对一关联关系 及其懒加载,总结

    一对一,则有主对象和从对象之区别 若无主对象,则从对象亦无存在之意义. 主对象为person 从对象为idcard <hibernate-mapping package="cn.itc ...

  9. Hibernate 基于主键的一对一关联关系随手记

    @Test public void testSave() { Boss boss = new Boss(); boss.setName("A-老板"); Company compa ...

随机推荐

  1. 【Eclipse】修改项目访问名称

    Properties --> Web Project Settings --> Context root --> 输入想要用的名称(默认是项目名)

  2. ZOJ 2853 Evolution 【简单矩阵快速幂】

    这道题目第二次看的时候才彻底理解了是什么意思 把题目转化为数学模型分析后就是 有一个初始序列, 有一个进化率矩阵 求的是初始序列 与进化率矩阵进行 m 次运算后, 初始序列最后一位的答案 那么显然,可 ...

  3. (Problem 2)Even Fibonacci numbers

    Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting w ...

  4. Spring IOC(DI)之注入方式

    一次被问到IOC的注入方式,当时脑袋一阵混乱,不知道噻.于是google了一下,发现众说纷纭,有说三种的,有说四种的.都滚犊子吧,还是看看官方文档吧. DI exists in two major v ...

  5. solrCloud+tomcat+zookeeper配置

    一.环境准备: Solr版本:4.7.0 下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/4.7.0 Tomcat版本:6.0.39 下载地 ...

  6. 转:CSS选择器笔记

    作者: 阮一峰 日期: 2009年3月12日 去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记. 这几天拿出来看了一下,发现很多都忘记了.所以,我决定把它们贴在这里,方便以后查 ...

  7. hdu2243之AC自动机+矩阵乘法

    考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  8. C# 点击窗口任意位置拖动

    代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

  9. 数据库神器:Navicat Premium

    Navicat premium是一款数据库管理工具.将此工具连接数据库,你可以从中看到各种数据库的详细信息.包括报错,等等.当然,你也可以通过他,登陆数据库,进行各种操作.Navicat Premiu ...

  10. java--从控制台读入一些数据

    学一些东西应该,学以致用: 现在我开始使用流的办法从控制台读取数据 import java.io.*; public class Demo2{ public static void main(Stri ...