@Query和@Modifying这两个注解使用过程如下:
@Query("update Article set state = ?2 where id = ?1")//默认是只读事务 @Modifying//增删改的时候加。SpringDataJPA不自动提供事务了-没事务了-手动事务 void updateStateById(String id,String state);
其中 ?2 和 ?1 代表的占位符,?n 中n的顺序是从1开始的,和method 中 参数的顺序相对应。
1、@Query
这样的查询结构更加清晰。当然也可以使用命名参数。
使用命名参数 必须配合 @param 注解使用,这样的话就无需考虑 顺序问题了。
@Query("SELECT p FROM Problem p WHERE p.repaly = :replay AND p.repalytime = :replaytime") List<Problem > testQueryAnnotationParams2(@Param("replaytime") String replaytime, @Param("repaly ") String repaly );
@Query("SELECT p FROM Problem p WHERE p.repaly Like %:replay OR p.repalytime Like %:replaytime") List<Problem > testQueryAnnotationParams2(@Param("replaytime") String replaytime, @Param("repaly ") String repaly );
2、@Modifying
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223330.html原文链接:https://javaforall.net
