我有一对多的关系,每组有多个职位,即
Group -1----N- Position
Run Code Online (Sandbox Code Playgroud)
class Group {static hasMany = [postions:Position}
如果我有一个特定的组实例,我不能直接计算它有多少个位置?即调用一些方法group.positions.??
谢谢
正如OverZealous所说你可以打电话group.positions.size()但是对于大量的Positions来说它会非常昂贵,因为它会将所有这些加载到内存中来计算它们,然后扔掉它们.
如果您的Position类具有对其拥有Group类的反向引用,例如static belongsTo = [group: Group],那么您可以使用此轻量级查询:
def group = ...
int positionCount = Position.countByGroup(group)
Run Code Online (Sandbox Code Playgroud)
如果您没有双向关系,可以通过HQL获取计数:
def group = ...
int positionCount = Group.executeQuery(
'select count(pos) from Group g ' +
'inner join g.positions pos where g=:g', [g: group])[0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
760 次 |
| 最近记录: |