筛选 querydsl 查询中的子实体

Filter child entities in querydsl query

提问人:ebalt 提问时间:11/15/2023 最后编辑:ebalt 更新时间:11/15/2023 访问量:29

问:

我正在尝试将 c# linq 查询转换为 java querydsl 查询。 但我正在为此苦苦挣扎。 下面是 c# 代码:

var ssiDeclarationMasters = UnitOfWork.CurrentSession.SsiDeclarationMasters
.Where(x => x.year == 2023)
.Select(x => new
{
    Id = x.Id,
    Name = x.Name,
    IsConfirmed = x.IsConfirmed,
    SsiDeclarationPromotionLaws = x.SsiDeclarationPromotionLaws
    .Where(y => y.PromotionLawId == 5)
    .ToList()
})
.ToList();

这是我的 java 代码来做到这一点:

var c2 = queryFactory.selectFrom(ssiMaster)
            .rightJoin(ssiMaster.SsiDeclarationPromotionLaws, promotionLaw)
            .where(
                    ssiMaster.year.eq(2023),
                    promotionLaw.promotionLawId.eq(5)
            )
           .select(
                    ssiMaster.isConfirmed,
                    ssiMaster.name,
                    ssiMaster.SsiDeclarationPromotionLaws

                    );

此代码不筛选 ssiMaster.SsiDeclarationPromotionLaws 表。它只是获得所有促销结果。 我错过了什么?

java sql spring-boot spring-data-jpa 查询DSL

评论


答: 暂无答案