记录一下@Query注解查询时候,条件查询如何使用占位符。
当springdata的命名查询满足不了我们的需求,如:子查询,这个时候我们就可以使用@Query注解来自定义查询。
(1)用?+数字的方法
这种方法方法,参数列表的,入参顺序必须与 @Query注解当中标注的顺序相同
@Query("SELECT s from Student s where s.email=?1 and s.age=?2")
Student findStudentByEmailAndAge(String email , Integer age);
(2):+参数名称
这种方式,可以自定义参数的名称 然后在如参数列表当中用@Param注解标注参数名称。不用考虑顺序,是根据参数名称进行绑定。
@Query("SELECT s from Student s where s.email=:email and s.age=:age")
Student findStudentByEmailAndAge2(@Param("age") Integer age, @Param("email") String email);