Var*_*hta 11 hibernate hql jdbc prepared-statement
在将HQL转换为SQL时,Hibernate在JDBC内部使用PreparedStatements.如何处理HQL中的内联参数?
例:
public List<Student> loadAllStudentsByStatus(String status) {
String queryString = "FROM Student student WHERE student.status = " + status;
Query queryObject = currentSession().createQuery(queryString);
return queryObject.list();
}
Run Code Online (Sandbox Code Playgroud)
状态是"解析"并在SQL中用作参数,还是作为内联参数发送.
我在论证背后的原因是"最佳实践",以及重复调用的查询性能
Bal*_*usC 18
它是内联发送的.当status
客户端控制的值时,您绝对不希望这样做.
而是参数化它:
return currentSession()
.createQuery("FROM Student student WHERE student.status = :status")
.setParameter("status", status)
.list();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21870 次 |
最近记录: |