一步一步学grails(4)
在Grails框架中,GORM(Groovy Object Relational Mapping)是用于数据库操作的重要部分,它简化了对象与数据库表之间的映射。在本教程中,我们将深入探讨如何使用GORM处理1:M(一对一到多)关系。教程中提到的项目涉及到五个核心领域类,它们之间的关系构建了一个完整的生产计划系统。 我们来看`Planning`领域类,它是生产计划的核心。`Planning`类包含了与订单相关的属性,如产品编号(`productNo`)、产品名(`productName`)以及与生产过程相关的其他信息,如检验(`inspection`)和入库(`warehousing`)。值得注意的是,`productNo`与`ProductionNo`领域类之间存在1:1关系,这通过`static belongsTo=[Planning]`在`ProductionNo`类中声明。同时,`Planning`类拥有两个1:M关系,即`materials`和`craftList`,分别关联到`Material`(物料表项)和`Crafts`(工艺表项)领域类,这通过`static hasMany=[materials:Material, craftList:Crafts]`定义。 `Material`领域类代表生产计划中单个产品的原材料。它可能包含关于原材料的属性,如名称、规格等,这些在示例代码中未详细给出。每个`Planning`实例可以关联多个`Material`实例,体现了1:M关系。同样,`Crafts`领域类可能表示一系列生产工艺,每个`Planning`实例也可以包含多个`Crafts`实例。 此外,`Planning`类还包含了一些基本数据类型(如`String`和`int`)的属性,如件数(`pieces`)、实收金额(`accountsActual`)和应收金额(`accountsDue`),这些属性提供了关于生产计划的附加信息。 在处理1:M关系时,GORM自动处理了多端的集合管理,例如`materials`和`craftList`。在数据库层面,这通常表现为在`Material`和`Crafts`表中添加一个外键字段,指向`Planning`表的主键。在Grails应用中,可以通过领域对象的集合属性方便地进行增删改查操作,无需直接操作SQL。 在实现M:M关系时,由于其复杂性,通常会创建一个额外的关联表来存储两个实体的连接信息。这个关联表有自己的领域类,如`MaterialCrafts`,它有两个1:M关系,分别与`Material`和`Crafts`关联。这样,我们可以通过`MaterialCrafts`实例来管理`Material`和`Crafts`之间的关系。 本教程通过一个实际的生产计划项目,展示了Grails中GORM如何处理1:1和1:M关系。学习者将了解到如何定义领域类,设置关系,以及如何在业务逻辑中使用这些关系进行数据操作。这种实践性的教学方式有助于加深对Grails框架和GORM的理解,特别是对于初学者来说,这是一个很好的起点。
- u0140273462015-11-22不错的资源,但是grails已经没用了
- straw0072015-05-31不错,对于学习grails有很大帮助
- 粉丝: 5212
- 资源: 42
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 可直接运行 MATLAB数学建模学习资料 模拟算法MATLAB代码实现.rar
- 基于 Java+SQLServer 实现的医药售卖系统课程设计
- HCNP(HCDP)华为认证资深网络工程师-路由交换方向培训 -IESN中文理论书-内文.pdf
- 新版FPGA课程大纲,芯片硬件开发用的大纲
- ROS2下OpenCV识别物体区域和视频捕捉的样例
- STM32-EMBPI.PDF
- Font Awesome图标字体库提供可缩放矢量图标,它可以被定制大小、颜色、阴影以及任何可以用CSS的样式
- Bluefield 2固件镜像版本,fw-MBF2M345A-VENOT-ES-Ax-24.40.1000.bin
- 雪颜奇迹幻白双重莹白焕采霜50ML-1016-FA.rar
- Qt的QDOCK高级用法源码,包含linux和windows版本,从开源库下载