【发布时间】:2011-08-11 21:55:06
【问题描述】:
我在 Grails 中的投影存在一些问题。您能帮我检查一下并为我提出解决方案吗?
-
我想查询许多表上的数据,这些表具有多对一关系并在它们的某些属性上进行投影。例如:
class Person { int id String name String address static hasMany = [cars : Car] } class Car { int id String brand long price Person owner static belongsTo = [owner : Person] }那么,如何只使用一个查询 withCriteria(应用投影)来获取指定汽车的信息(包括品牌、价格和车主姓名)?是否可以使用:
Car.withCriteria { projections { property("brand") property("price") property("owner.name") } eq("id", carId) } 我可以使用投影来获取一个指定人的信息以及他所有汽车的名称吗?例如:[01, Perter, 01 Street A, [Mercedes, Toyota, Ducatti]]?
-
一种特殊情况:(使用上面的 Person 类)
一个人可以加入许多组织,一个组织可以有一个“父”组织(反之亦然,一个组织可以有许多其他依赖组织)。但是有一条规则:一个人只能加入给定组织的一个子组织。因此,对于给定的组织 O 和个人 P,获取 P 的信息以及以 P 作为成员的 O 的依赖组织的名称的最快方法是什么。我更喜欢使用 Grails 投影。这里是数据模型:
class Person { int id String name String address static hasMany = [joinedOrgs : Organization] } class Organization { int id String name Organization parentOrg static hasMany = [members : Person, childOrgs : Organization] }
我是 Grails 的新手,我想更多地了解 GORM。非常感谢您的帮助。
【问题讨论】:
标签: grails criteria grails-orm projection