14、深入探索 GORM 与 Hibernate 的高级特性

深入探索 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 ->
            
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值