@Query
注解使用详情
常用属性
value
: 取值,要么使用原生SQL
,要么使用JPQL
nativeQuery
:表示是否采用原生SQL
,诸如select * from tableName
取值方式
1、使用:形参名
示例:
单个形参的情况
多个形参的情况:
2、使用?数值
,数值表示形参位置,1
表示第一个形参,依次内推
示例:
单个形参的情况:
多个形参的情况:
特殊情况:数值也可不写,若不写具体的数值,默认是从1
开始递增,如下图示例:
3、使用@Param("参数名")
+:参数名
通常使用@Param
注解都是在多个形参的情况下使用
4、获取实体类名称,使用#{#entityName}
CRUD
使用@Query
注解实现删、改、查、增的示例,如下所示:
- 删
@Modifying
@Transactional
@Query(value = "delete from User where id = ?1")
void deleteByUserId(Integer id);
?
后面的数值1
,表示第一个形参的值,以此类推,如果方法有多个形参,数值也会依次递增,特殊情况,数值也可不写,若不写具体的数值,默认是从1
开始递增
- 改
@Modifying
@Transactional
@Query("update User set email = ?1 where id = ?2")
void updateUser(String email,Integer id);
- 查
@Query(value = "select * from tb_user where email like concat('%',?2,'%') and username like concat('%',?1,'%') ",nativeQuery = true)
User findByUsernameAndEmail( String username, String email);
- 增
@Modifying
@Transactional
@Query(value = "insert into tb_user(email,id_card,username,wage) values (:email,:idCard,:username,:wage)",nativeQuery = true)
void insertUser(String email,String idCard,String username,Double wage);
以上完成了@Query注解的使用详情的介绍,如果觉得小编写的不错的话,给小编点个赞哦,我们下期再见!
关注下方小编的公众号,更多精彩等着你哦