我正在使用以下代码使用hibernate检索内容表单对象,并且我使用setString分配查询值。
try
{
//sql injections prevented using setString(position,value)
List<Student> studentList=session.createQuery("from Student s where s.lastName=?")
.setString(0,lname).list();
for(Student studentinfo:studentList)
{
System.out.println(studentinfo);
}
model.addAttribute("result",studentList);
}
catch (Exception e)
{
System.out.println(e);
}
一切正常。但是IDE显示setString方法已弃用。 setString的另一种选择是什么
答案 0 :(得分:0)
假设您正在使用Hibernate 5.2+。 Official document说您应该使用setParameter(int position, java.lang.Object val)来设置查询参数。
要规避警告,您只需将setString
替换为setParamter
,如下所示。
List<Student> studentList=session.createQuery("from Student s where s.lastName=?")
.setParamter(0,lname).list();