2017-02-09 23 views
0

私はspring jdbcテンプレートを使用して、Oracleデータベースから400レコードを取得しています。 その後、行をオブジェクトに変換するために行マッパーを使用しています。 objectの値の中には値を持たないものがあります。私はPL/SQLエディタで同じSQLをテストするとき、私は行のすべての列とすべての列を見ることができます。私はアプリケーションをデバッグするとき、私は以下のエラーを取得しています。私は同じクエリのレコード(7)の数を取得する場合、それはfine.Rowマッパーがオブジェクトのすべての値を設定しています動作しています。これで私を助けてくれますか?Spring Jdbcのテンプレート行マッパーがオブジェクト内のすべての値を設定していません

java.sql.SQLException: statement handle not executed 

2017-02-09 15:45:39 INFO XmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 
2017-02-09 15:45:39 INFO SQLErrorCodesFactory:126 - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana] 
2017-02-09 15:45:39 WARN SQLErrorCodesFactory:227 - Error while extracting database product name - falling back to empty error codes 
org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is java.sql.SQLException: Connection has already been closed. 
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:305) 
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:329) 
    at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:214) 
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:134) 
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.<init>(SQLErrorCodeSQLExceptionTranslator.java:97) 
    at org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:99) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:645) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:680) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:707) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757) 
    at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:192) 
+1

すでに閉じられている接続についてのネストされたSQLExceptionは、コードまたは設定の問題を示唆しています。動作していないコードで更新してください。 –

答えて

0

データベースから400行を取得するのに時間がかかる場合は、DB接続のタイムアウトが発生していると想定します。その場合は、リソースプールを使用している場合はconnectionTimeoutを増やしてください。コードのデバッグ中にタイムアウトが発生する可能性もあります。

タイムアウトがデータベース側にある可能性もあります。その場合、DBタイムアウトパラメータを調整する必要があります。

関連する問題