spring-data-jpa SpringDataJPA -在下面的查询中,where子句中的“?1”是什么意思?

w8f9ii69  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(207)
@Query(value="select * from author a where a.last_name= ?1",nativeQuery = true)

在上面的查询中,?1是什么意思?

o2gm4chl

o2gm4chl1#

?1表示位置参数是定义查询参数的不同实践,以避免某些问题(如SQL注入),例如:

  • 命名参数:
String statment = "SELECT * from Users WHERE name=:nameParam and role=:roleParam";

    //some code

    query.setString("nameParam", nameValue);

    query.setString("roleParam", roleValue);
  • 位置参数:
String statment = "SELECT * from Users WHERE name=?1 and role=?2";

    //some code

    query.setString(1, nameValue);

    query.setString(2, roleValue);

相关问题