Grails2中One-to-many关系
来源:互联网 发布:linux mv命令 文件夹 编辑:程序博客网 时间:2024/05/17 03:58
当一个类(如Author),拥有另外一个类(如Book),就是一个one-to-many关系。在 Grails中,你可以用hasMany 来定义这种关系:
class Author {
static hasMany = [books: Book]
String name
}
class Book {
String title
}
在这种情况下我们拥有一个单向的 one-to-many。 Grails默认情况下,这种映射关系是连接一张表。
ORM DSL允许使用外键关联,而不是单向关系映射。
Grails 将依赖于hasMany设置,自动将一个java.util.Set属性类型注入到domain class中,这可以用来遍历集合:
def a = Author.get(1)
for (book in a.books) {
println book.title
}
Grails默认的获取策略是使用“lazy”加载,这意味着第一次访问该集合将被延迟初始化。如果你不小心,这可能会导致 n+1 problem 问题。
如果你需要采取"eager"获取策略,你可以使用 ORM DSL 或者指定急切抓取就像一个 query的一部分。
默认的级联行为是级联保存和级联更新,但不包括级联删除,除非指定了 belongsTo。
class Author {
static hasMany = [books: Book]
String name
}
class Book {
static belongsTo = [author: Author]
String title
}
如果你有两个相同类型的属性在one-to-many的 many一方,你必须使用mappedBy 来指定到不同的集合映射:
class Airport {
static hasMany = [flights: Flight]
static mappedBy = [flights:"departureAirport"]
}
class Flight {
Airport departureAirport
Airport destinationAirport
}
如果你有多个集合映射到many方不同的属性,这样做是正确的:
class Airport {
static hasMany = [outboundFlights: Flight,inboundFlights: Flight]
static mappedBy = [outboundFlights:"departureAirport",
inboundFlights:"destinationAirport"]
}
class Flight {
Airport departureAirport
Airport destinationAirport
}
- Grails2中One-to-many关系
- Grails2中的Many-to-many关系
- NHibernate中many-to-one映射关系
- Hibernate中many-to-one关系的编写
- Hibernate中many-to-one关系的编写
- 在liferay中生成one to many 关系说明
- Hibernate中many-to-one关系的编写
- Hibernate one-to-many / many-to-one关系映射
- Hibernate one-to-many / many-to-one关系映射
- Hibernate one-to-many && many-to-many 的关系映射
- Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many
- Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many
- 码农小汪-Hibernate学习4-关联关系映射many-to-one,many-to-one,one-to-many
- NHibernate学习笔记(三):many-to-one/one-to-many/many-to-many关系映射
- many-to-one/one-to-many/many-to-many关系映射 (Hibernate)
- NHibernate学习笔记(三):many-to-one/one-to-many/many-to-many关系映射
- Hibernate one to many 关联关系映射
- one-to-many关系的更新问题
- jQuery1.9.1针对checkbox的调整
- oracle查看编码以及修改编码 .
- Could not open ServletContext resource [/WEB-INF/applicationContext.xml]解决方法
- WSO2-Stratos2.0架构之Stratos Controller - ADC
- 全面解读3D(三维)成像技术机遇和挑战
- Grails2中One-to-many关系
- 看完这个你的位运算学得就差不多了
- Upgrading the HMC from Version 7.3.x or Version 7.7.x to Version 7.7.7
- 加班与效率
- unity 协同,调用——MonoBehaviour类Invoke, Coroutine
- 实现美观的TabHost
- WebDriver中close()与quit()的不同
- poj 1470 LCA基础题
- 二叉树递归遍历应用