java.lang.IndexOutOfBoundsException:请记住,序数参数基于1

时间:2018-10-05 12:36:58

标签: hibernate

public void testis() {
        Staff2 emp = new Staff2();
      emp.setName("SFFF");
      emp.setType("yyy");
      emp.setDme(123);
      emp.setIsActive("FFF");
   ssiMasterValidationSearchCriteriaDaoImpl.save(emp);

    }

private final static String SAVE_TO_DB="Insert into table1 (name,type,code,mne) values ('?','?','?','?')";


    public void save(Staff2 employee){
        Object result = getHibernateTemplateExt().uniqueResultBySQL(
                SAVE_TO_DB,
                new Object[] {
                    employee.getName(),
                    employee.getType(),
                    employee.getDme(),
                    employee.getIsActive()});

    }

获取标题错误 那是

  

java.lang.IndexOutOfBoundsException:请记住,序数参数   基于1!在   org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:55)     在   org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:61)     在   org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:397)

1 个答案:

答案 0 :(得分:0)

private final static String SAVE_TO_DB="Insert into table1 (name,type,code,mne) values ('?','?','?','?')";更改为private final static String SAVE_TO_DB="Insert into table1 (name,type,code,mne) values ('?1','?2','?3','?4')";并进行检查。

我还怀疑您的查询Insert into table1 (name,type,code,mne) values ('?','?','?','?')包含与这些设置方法不同的字段

  emp.setName("SFFF");
  emp.setType("yyy");
  emp.setDme(123);
  emp.setIsActive("FFF");

例如setDme字段名称应为dme,但在查询中为mne