MY_MAIN 2019-07-31 12:35 采纳率: 66.7%
浏览 5589
已结题

JPA中高级查询怎样实现join子查询

如SQL:

select assets_entity.* from assets_entity 
left join (
    select inventory_recording.assets_entity_id from inventory_recording where inventory_recording.inventory_task_id = ?
) as irr 
on assets_entity.id = irr.assets_entity_id 
where irr.assets_entity_id is null;

下面是我写到一半的,可是root.join不知道怎么放子查询

private void listsss(){
        Specification<AssetsEntity> specification = new Specification<AssetsEntity>() {
            @Override
            public Predicate toPredicate(Root<AssetsEntity> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                //Path<String> assetsNumberPath = root.get("assetsNumber");

                // 完成子查询
                Subquery subQuery = criteriaQuery.subquery(String.class);
                Root IRFrom = subQuery.from(InventoryRecording.class);
                subQuery.select(IRFrom.get("assetsEntity")).where(criteriaBuilder.equal(IRFrom.get("inventoryTask"), 1L));

                // left join

                List<Predicate> predicates = new ArrayList<>();

                Predicate[] array = new Predicate[predicates.size()];
                criteriaQuery.where(predicates.toArray(array));
                return null;
            }
        };
    }
  • 写回答

3条回答

  • threenewbee 2019-07-31 22:22
    关注
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?