Spring Data JPA @Query注解的用法

1、默认配置下, 使用了@Query注解后就不会再使用方法名解析的方式了,上面这种事依然是面向对象查询,sql语句中写实体类名和属性名, :后加变量,表示这是一个参数,类似sql预编译的 ?。

@Query("from User where userId = :userId")
User findByUserId(@Param("userId") userId);

2、当不需要表中的全字段时,可自定义dto类来接受查询结果,这种方法要注意使用new + dto类全路径+ (别名.field1, 别名.field2, 别名.field3), 且dto类中必须有对应参数结构的构造函数!别忘记加上无参的构造函数!

@Query("select new com.user.domain.UserDto(a.userName, a.gender) from User a where userId = :userId")
UserDto findByUserId(@Param("userId") userId);

3、使用注解属性 native=true(默认false),可执行原生sql语句

@Query(value="select * from t_user where user_id = :userId", native=true)
User findByUserId(@Param("userId") userId);

4、修改操作加上 @Modify注解

@Query(value="update User set userId = :userId")
@Modify
User findByUserId(@Param("userId") userId);

 

转载于:https://my.oschina.net/u/3725073/blog/1647387

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值