如何编写加入多个表的spring boot jpa规范

问题描述

我想使用 Spring Boot 规范编写以下查询。

SELECT o.*
from orders as o
     inner join user as u on o.user_id = u.id
     inner join user_group as ug on u.user_group_id = ug.id
     left join order_product op on o.id = op.order_id
     left join mobile_order_product mop on op.id = mop.order_product_id
     left join mobile_device as md on mop.mobile_device_id = md.id
     left join tablet_order_product top on op.id = top.order_product_id
     left join tablet_device as td on top.tablet_device_id = td.id
where ug.id = 1
     and (md.imei = 123456789 or td.imei = 123456789)

我尝试编写如下规范,但找不到加入 order_product 表的方法。

    public static Specification<Order> filterOrdersByGroupIdAndImei(int userGroupId,int imei) {
        return (root,query,cb) -> {
            Join<Object,User> user = root.join("user");
            Join<Object,UserGroup> userGroup = user.join("userGroup");
//            how to join order_product and other join tables

            Predicate equalPredicate = cb.equal(userGroup.get("id"),userGroupId);
            return cb.and(equalPredicate);
        };
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)