RoomType和RoomState的主键是Integer,在get的时候忘记转换为Integer了:
this
.getHibernateTemplate().execute(
new
HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
room.setType((RoomType) session.get(RoomType. class , typeId));
room.setState((RoomState) session.get(RoomState. class , stateId));
session.update(room);
return null ;
}
});
没想到hibernate居然大动干做,抛出一大堆的exception
这样的错误真是让我一点莫不着头脑,还好从后台打出的hql看到了错误的信息
不就是没找到吗,干嘛要这样呢
将String类型转换为Integer就没事了
public Object doInHibernate(Session session) throws HibernateException {
room.setType((RoomType) session.get(RoomType. class , typeId));
room.setState((RoomState) session.get(RoomState. class , stateId));
session.update(room);
return null ;
}
});
没想到hibernate居然大动干做,抛出一大堆的exception
java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1681)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3280)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
at org.hibernate.loader.Loader.doQuery(Loader.java:662)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1129)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:749)
at com.phopesoft.hms.room.service.impl.RoomServiceImpl$3.doInHibernate(RoomServiceImpl.java:151)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:334)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1681)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3280)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
at org.hibernate.loader.Loader.doQuery(Loader.java:662)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1129)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:749)
at com.phopesoft.hms.room.service.impl.RoomServiceImpl$3.doInHibernate(RoomServiceImpl.java:151)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:334)
这样的错误真是让我一点莫不着头脑,还好从后台打出的hql看到了错误的信息
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation:
could not execute query; uncategorized SQLException for SQL [
...
SQL state [null]; error code [17041]; 索引中丢失 IN 或 OUT 参数::1;
nested exception is java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
could not execute query; uncategorized SQLException for SQL [
...
SQL state [null]; error code [17041]; 索引中丢失 IN 或 OUT 参数::1;
nested exception is java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
不就是没找到吗,干嘛要这样呢
将String类型转换为Integer就没事了
this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
room.setType((RoomType) session.get(RoomType.class, new Integer(typeId)));
room.setState((RoomState) session.get(RoomState.class, new Integer(stateId)));
session.update(room);
return null;
}
});
public Object doInHibernate(Session session) throws HibernateException {
room.setType((RoomType) session.get(RoomType.class, new Integer(typeId)));
room.setState((RoomState) session.get(RoomState.class, new Integer(stateId)));
session.update(room);
return null;
}
});
相关推荐
`是一次成功的显式强制类型转换,因为`T`可能实现了`ISomeInterface`。但是,对于`SomeClass obj2 = (SomeClass)t;`这一行来说,则不会通过编译,因为没有类型约束表明`T`必须是`SomeClass`的实例。 #### 使用对象...
标题提到的"通过web端转换excel为xml文件,可一次性转换多个xml"是一种高效的工作流程,它允许用户通过Web界面将Excel表格数据批量转化为XML格式。XML(Extensible Markup Language)是一种结构化数据存储格式,广泛...
在实际操作中,可能还需要考虑错误处理、日志记录、性能优化等方面,以确保转换的稳定性和效率。Kettle的强大之处在于其灵活性和可扩展性,可以根据不同的数据处理需求进行定制化设计。 总的来说,Kettle执行转换每...
7. 并行处理和批量转换:为了提高效率,转换工具可能支持并行处理多个文件,或者一次性处理整个文件夹,这就需要编程技术来实现多线程或异步操作。 8. 安全性:在转换过程中,确保数据安全和隐私保护,避免敏感信息...
5. **简化工作流程**:通过一次性批量转换多个文件,诺诚NC转换器提高了工作效率,减少了手动编程的时间和出错风险。 在使用诺诚NC转换器4.0时,应注意以下几点: 1. **软件安装**:确保您的计算机上已经安装了...
它支持批量转换,用户可以一次性处理多个ENG文件,大大提高了工作效率。此外,该软件还保证了转换过程中的数据准确性,确保转换后的NC文件能够准确无误地执行预期的加工操作。 在转换过程中,诺诚转换器可能涉及的...
5. **批量处理**:对于包含多个语言版本的应用,apploc可以一次性处理所有语言文件,大大提高了工作效率。 6. **命令行工具**:apploc通常提供命令行接口,方便开发者在自动化脚本中集成,实现持续集成或批量转换...
5. **批量处理**:为了提高效率,模块应支持一次性转换多个文件,这需要良好的文件管理和并发处理能力。 6. **用户界面**:易语言类通常会包含一个简单的用户界面,让用户选择输入文件、输出格式,以及设置相关参数...
3. **分块处理大文件**:对于非常大的文件,可以考虑分块处理,避免一次性加载整个文件到内存中。 4. **测试小样本**:先对文件的子集进行转换,确认结果无误后再处理整个文件。 ### iconv 在实际应用中的场景 1. ...
在金蝶系统中,"通过变量选择单据转换规则"是一种高级定制功能,主要用于处理复杂的业务逻辑,特别是在处理不同业务场景下需要应用不同转换规则的情况。这个功能主要应用于二次开发("二开"),允许企业根据自身特定...
函数返回一个闭包,它保存了上一次调用的参数和累加的状态。通过重写valueOf()方法,可以控制函数在被用在数值上下文时的行为,实现累加功能。 需要注意的是,类型转换的规则在JavaScript中非常复杂,不同的操作符...
- 文件批量转换:一次性处理多个文件,提高工作效率。 - 预览和验证:在转换前预览数据,转换后验证结果的正确性。 - 自定义转换规则:允许用户根据需要定制转换规则,如字段映射、数据类型转换等。 - 错误处理和...
7. 批量转换:对于大量文件的处理,转换器通常支持批量转换功能,一次性处理多个文件,提高工作效率。 "EncodingConverter-1.0"可能是一款基础的文件编码转换工具,版本号1.0表示这是其初始版本,可能包含了基本的...
2. **批量转换**:用户可以一次性选择多个文件进行转换,节省时间和精力。 3. **自定义设置**:工具可能允许用户调整音频质量,例如比特率、采样率和声道数,以平衡音质和文件大小。 4. **元数据保留**:好的转换...
- `lastIndexOf("")`: 返回子字符串最后一次出现的位置。 - `slice(beginIndex,endIndex)`: 提取字符串的一部分并返回。 - `subString(beginIndex,endIndex)`: 提取字符串的一部分并返回,与 `slice` 类似但不支持...
在计算机科学领域,数制转换是基础操作之一,它涉及到将数字从一个进制系统转换到另一个进制系统,这对于理解和处理计算机系统内部表示的数据至关重要。尤其是在处理不同类型的数字表示法,例如二进制、八进制、十...
- **性能调优**:对于大量图像转换,可以使用缓冲区一次性处理多个文件,或者采用并行处理技术,如TPL(Task Parallel Library)。 - **用户体验**:如果是一个桌面应用,提供进度条和取消操作会提升用户体验。 ...
5. **批量处理**:对于大量文件的转换工作,诺诚NC转换器4.0提供了批量处理功能,可以一次性处理多个文件,极大地节省了时间和精力。 6. **预览功能**:在转换前,用户可以通过内置的预览功能检查和确认转换效果,...
同时,为了提高性能,可以考虑使用批处理方式一次性处理多行数据,而不是一行一行地处理。 6. **代码实现**: 实现上述功能需要编写一段Delphi代码,这通常会包括初始化组件、设置数据库连接、读取TXT文件、转换...
这通常是由于数值解析或类型转换过程中的错误导致的。 解决这个问题的方法如下: 1. **解析科学计数法**:首先,我们需要将科学计数法的字符串转换为浮点数。`BigDecimal`类可以用来处理这种情况,它能精确地处理...