@Query与@Param
@Query 是JPA中的注解,用于绑定方法和与数据库表有关的操作。
它的查询语法格式分为两种,一种是数据库原生语句,这种方式需要在属性里面显式地将nativeQuery
属性设置为true
。另一种是JPA的语法格式,这种方式需要搭配@Entity
和@Table
注解使用。
它的参数调用格式也分为两种,一种是通过?
+入参坐标
的形式来调用,例如:?1
。另一种则是通过:
+变量名
的形式调用,例如::userName
。当使用第二种方式时,需要用@Param
来对参数名进行映射。
搭配使用:
- @Param:绑定参数。
- @Entity:定义实体类。
value
属性定义类名,在 @Query 中使用JPA格式的写法时需要使用该值作为实体类名。 - @Table:定义表结构。
name
属性用于绑定数据库中的表名,若没有该值则默认表名为Entity标签中的value
值。
注意:在java代码中仍通过java类名来调用被