【发布时间】:2016-05-31 12:08:19
【问题描述】:
我在 Grails 中使用 Hibernate 并正确设置 Parent 域类和 Child 域类,完全配置,具有静态 hasMany 和 belongsTo 属性。对于这个场景,我们只使用类名Parent 和Child,不过,它也可以应用于其他场景,实用性。
为了测试这个映射,我还执行了许多成功的 CRUD。虽然过了一段时间,出现了提前查询。我目前正在执行一些“高级”查询,我在下面总结了这些查询。使用给定的Domain 映射:
class Parent {
Long id
static hasMany = [ children: Child ]
}
class Child {
Long id
static belongsTo = [ parent: Parent ]
}
如何选择以下条件:
- 选择所有没有孩子的父母
- 选择所有有孩子的父母
- 选择所有有男孩的父母(因此,当通过
as JSONgroovy 类型转换转换为 JSON 时,应该只包括男孩)
我不知道如何开始编码 1 和 2,也许与 child.size() 有关——我真的不知道。虽然我在 3 中的想法是:
ArrayList<Parent> PARENTS_WITH_SON = Parent.createCriteria().list {
children {
eq("gender", "male")
}
}
但问题是,当转换为 JSON 时,它包含非男性条目。有人可以帮我查询吗?使用createCriteria() 会很好,但也可以在HQL 中使用。
【问题讨论】:
标签: json hibernate grails groovy