spring data jpa的自定义查询,修改以及分页

本文详细介绍了如何在Spring Data JPA中进行自定义SQL查询,包括使用@Query注解和nativeQuery,以及如何处理分页。此外,文章还讨论了更新和删除操作,并提醒在实际开发中需要注意的问题,如避免全字段查询,提出了使用DTO对象或Map作为返回值的解决方案。
摘要由CSDN通过智能技术生成

 

      接着上篇博客。上篇博客简单介绍了jpa的基本使用,以及如何根据定义方法名让jpa自动生成sql语句,这次来看看如何自定义sql语句。

   jpa自定义sql语句是在方法上加上@Query注解,这和mybatis使用注解很像,不过mybatis有@Select,@Delete,@Update,@Insert 四种注解,而jpa只需要@Query。先来看一个简单的例子:

    @Query(value = "select u from User u where u.username= ?1")
    User findByUsername2(String username);

在默认的情况下,jpa不允许你使用“*”,也就是说不能出现  select * from... ,这样的语句,jpa会报错,还有一个就是这里的User需要首字母大写。不能使用* 我们一般会在给表取个别名,用别名代替*,如上面的例子所示。

如果非要使用*,可以在后面加上 nativeQuery = true,例子如下:

   @Query(value = "select * from User u where u.username= ?1",nativeQuery = true)
   User findByUsername2(String username);

加上nativeQuery的意思就是使用原生的sql,不需要jpa为我们做处理。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值