深入探索 GORM 与 Hibernate 的高级特性
1. 集合操作与计数
在 GORM 中,我们可以轻松地处理关联集合。例如,通过 hasMany 静态属性可以定义一个类与其他类的多对多或一对多关系。以下代码展示了如何定义一个 Branch 类与 Visit 类的关系,并计算 Visit 的数量:
static hasMany = [visits: Visit]
int getVisitCount() {
visits == null ? 0 : withSession {
it.createFilter(visits, 'select count(*)').uniqueResult()
}
}
同时,我们还可以使用 Session.createFilter() 方法来分页获取集合中的元素,而无需加载整个集合。以下是一个示例:
class Branch {
String name
List visits
static hasMany = [visits: Visit]
List<Visit> getVisitsByPage(int pageSize, int pageNumber) {
Branch.withSession { session ->
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



