jpa+queryDSL使用Projections的一些坑点

不熟悉的花十分钟看看入门的,也无妨

jpa+queryDSL入门

踩坑经历:
需求: 连表查询时,使用Projections对象,按需选择返回字段组装成一个VO对象

坑点: 返回的字段有Integer对象,如id字段; 也有String对象,如title字段, 但是查询到的id字段一直为null

天才可以忽略以下一段话,搞了一上午,反反复复测试、百度,都没有看到相关的资料,功夫不负有心人,瞎猫撞见死耗子,换了个方法查询之后,啥都有了。一度怀疑是源码有bug,但是看源码是不可能看源码的,这辈子都不可能去看源码的,有这个时间吹吹牛逼,撩撩妹子,下班打个游戏,学学炒菜,锻炼身体,保养一下头发,遛遛狗,说说骚话,不香吗,作为工程师就要有工程师的觉悟,搞研究的事情就交给天才去搞吧,哈哈。

之前使用的是Projections.bean(Class<? extends T> type, Expression<?>... exprs)方法,
后来试了下Projections.fields(Class<? extends T> type, Expression<?>... exprs)之后,就能拿到了

下面给个例子,如果会使用,应该大同小异了,应该看得懂吧,这里就拿个单表做查询测试了

测试示例:

@SpringBootTest
@RunWith(SpringRunner.class)
public class JPATests {

    @Autowired
    private JPAQueryFactory jpaQueryFactory;

    @Test
    public void JPATest() {
        QAppAttachment appAttachment = QAppAttachment.appAttachment;

        List<TaskAttachVo> taskAttaches = jpaQueryFactory.select(Projections.fields(TaskAttachVo.class,
                appAttachment.iId,
                appAttachment.vcTitle))
                .from(appAttachment)
                .where(appAttachment.iId.eq(34184))
                .fetch();
        System.err.println(taskAttaches);
    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木一番

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值