3

很快..我有一个 Web 应用程序可以查询 Oracle 数据库并在页面上显示结果。问题是我NumberFormatException在使用 检索数据时得到一个query.list(),这仅发生在某些表格上。我已经搜索并发现这是因为我的一些表格包含 BLOB 和 CLOB 数据所以..

Is there any way I can tell hibernate to search on my DB with createSqlQuery(sqlString) without retrieving the BLOB and CLOB data from my DB ?

这是我的代码的一部分:

Query query = session.createSQLQuery(sqlQuery).setFetchSize( Integer.valueOf(nrOfLines) );
    query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
    final List<Map<String, String>> resultQueryList = query.list();

NumberFormatException 堆栈跟踪:

{java.lang.NumberFormatException@2747}Method threw java.lang.NumberFormatException' exception.
detailMessage = {java.lang.String@2875} "For input string: "4294967295""
cause = {java.lang.NumberFormatException@2747}"java.lang.NumberFormatException: For input string: "4294967295""
{java.lang.StackTraceElement@2751} "java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)"
{java.lang.StackTraceElement@2752} "java.lang.Integer.parseInt(Integer.java:495)"
{java.lang.StackTraceElement@2753} "java.lang.Integer.parseInt(Integer.java:527)"
{java.lang.StackTraceElement@2754} "oracle.jdbc.driver.OracleResultSetMetaData.getPrecisionOracleResultSetMetaData.java:303)"
{java.lang.StackTraceElement@2755} "org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:581)"
{java.lang.StackTraceElement@2756} "org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:508)"
{java.lang.StackTraceElement@2757} "org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:524)"
{java.lang.StackTraceElement@2758} "org.hibernate.loader.Loader.getResultSet(Loader.java:1821)"
{java.lang.StackTraceElement@2759} "org.hibernate.loader.Loader.doQuery(Loader.java:697)" .......

我搜索了很多,但只找到了如何从 DB 中读取 blob 和 clob 数据......而我想要的恰恰相反。

4

2 回答 2

3

Finally found out a way to do it. I followed this article http://alessandromigliaccio.blogspot.ro/2010/11/javalangnumberformatexception-for-input.html and added to tomcat 7 the option -Doracledatabasemetadata.get_lob_precision=false

于 2013-06-12T14:40:04.400 回答
0

您声明的变量的值大于声明的数据类型。您应该使用 double 或 long 相同。这可能会解决您的问题。

于 2013-06-11T13:44:55.497 回答