JPA的@Query与@Param注解使用方式

原文链接:https://blog.csdn.net/m0_37965811/article/details/123034370

@Query 是 JPA 中的注解,用于绑定方法和与数据库表有关的操作。

它的查询语法格式分为两种,一种是数据库原生语句,这种方式需要在属性里面显式地将nativeQuery属性设置为true。另一种是 JPA 的语法格式, 这种方式需要搭配@Entity和@Table注解使用。

它的参数调用格式也分为两种,一种是通过?+入参坐标的形式来调用,例如:?1。另一种则是通过:+变量名的形式调用,例如::userName。当使用第二种方式时,需要用@Param来对参数名进行映射。

搭配使用:

@Param:绑定参数。

@Entity:定义实体类。value属性定义类名,在 @Query 中使用 JPA 格式的写法时需要使用该值作为实体类名。

@Table:定义表结构。name属性用于绑定数据库中的表名,若没有该值则默认表名为 Entity 标签中的value值。

注意:在 java 代码中仍通过 java 类名来调用被 @Entity 标注的类。 调用方式:  Java 代码 -----> java 类名  JPA 语法 -----> @Entity 中的value值

使用方法:

标注于继承了Repository的接口类中的方法上

需要参数的话需要配合@Param注解使用

分为 JPA 语法格式的查询和原生语句语法格式的查询

//原生语句
@Query(value = “select * from User where user_id = :id”, nativeQuery = true)
List findUser(@Param(value = “id”) String userId);
//这里假定已经定义了一个User类,并且用@Entity(value = “userTable”)注解标注过

//JPA语法格式
@Query(value = “select u from userTable u where u.userId = :id”)
List findUser(@Param(value = “id”) String userId);
参数写法:

//以原生语句为例,JPA语法格式使用方法相同

//方式一
@Query(value = “select * from User where user_id = :id”, nativeQuery = true)
List findUser(@Param(value = “id”) String userId);

//方式二
@Query(value = “select * from User where user_id = ?1 and user_name = ?2”, nativeQuery = true)
List findUser(String userId, String userName);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值