我有一個ResultSet對象,我需要把它變成一個OracleResultSet,以便我可以調用它的getOPAQUE(String)方法。我使用c3p0作爲連接池。問題是c3p0包裝NewProxyResultSet對象中的ResultSets。c3p0 ResultSet.unwrap拋出一個AbstractMethodError
這不應該是一個問題,因爲我應該能夠調用解包上的ResultSet是這樣的:
rs.unwrap(OracleResultSet.class)
然而,這是行不通的。它實際上拋出的AbstractMethodError:
java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyResultSet.unwrap(Ljava/lang/Class;)Ljava/lang/Object;
它包括一個堆棧跟蹤,但由於堆棧跟蹤的頂線只是點到,我稱之爲解包方法精確線是沒有幫助的。這似乎表明NewProxyResultSet本身沒有實現unwrap。
這是怎麼回事?我如何獲取NewProxyResultSet並從中獲取OracleResultSet?
順便說一句,我曾與C3P0問題爲好。它沒有正確地進行交易。請參閱http://stackoverflow.com/questions/1977366/spring-transactional-cpool-which-one-do-i-use/2002505#2002505瞭解我是如何做到的完整說明。 – HappyEngineer 2010-01-04 22:04:07