hibernate - java.lang.IndexOutOfBoundsException:记住序数参数是从 1 开始的
问题描述
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)
解决方案
更改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
推荐阅读
- google-cloud-platform - GKE / Cloud IAM 工作负载身份设置错误 403
- swiftui - SwiftUI:步进绑定在子视图中不起作用
- reactjs - React:在函数内部访问 this.state 会引发错误
- python - 如何编写创建随机用户名和密码 selenium python
- gobblin - 安装地精时构建失败
- java - 如何在结果集响应上使用 Group by
- python - I can't import cv2,vlc and numpy python pycharm
- python - 如何在机器学习算法中部署我的功能?
- python - PyTorch:如何定义一个利用迁移学习的新神经网络
- javascript - 将 zip 文件流转换为磁盘上的文件