setString在Hibernate中已弃用。还有其他选择吗?

时间:2018-09-15 22:05:30

标签: hibernate

我正在使用以下代码使用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的另一种选择是什么

1 个答案:

答案 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();