2017-04-07 10 views
0

私はこの問題が様々な質問で扱われていると私の意見では、HEREの答えは論理的な解決策のように思えますが、どういうわけか役立たない。 特定のエンティティのみを保存または更新するときにエラーが発生します。それが妙に動作し、すべての他の人と\オブジェクト指向/c3p0でHibernate 4.3.11 0.9.5.2 setCharacterStream原因AbstractMethodError

は、ここに私のスタックトレースです:

Exception in thread "AWT-EventQueue-0" java.lang.AbstractMethodError 
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setCharacterStream(JtdsPreparedStatement.java:1274) 
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setCharacterStream(NewProxyPreparedStatement.java:956) 
at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$4$1.doBind(ClobTypeDescriptor.java:124) 
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:90) 
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:286) 
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:281) 
at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:67) 
at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:616) 
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1901) 
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862) 
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839) 
at org.hibernate.loader.Loader.doQuery(Loader.java:910) 
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) 
at org.hibernate.loader.Loader.doList(Loader.java:2554) 
at org.hibernate.loader.Loader.doList(Loader.java:2540) 
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) 
at org.hibernate.loader.Loader.list(Loader.java:2365) 
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) 
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) 
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) 
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) 
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) 
at my.software..persistent.hibernate.dao.LanguageTextDaoHibernate.getLanguageKey(LanguageTextDaoHibernate.java:241) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) 
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) 
at com.sun.proxy.$Proxy83.getLanguageKey(Unknown Source) 
at my.software..util.language.LanguageTextUtil.getLanguageKey(LanguageTextUtil.java:125) 
at my.software..propertysheet.TextProperties.setLanguageText(TextProperties.java:505) 
at my.software..gui.dialog.spm.TextProducerDialog.buttonGetValues_actionPerformed(TextProducerDialog.java:296) 
at my.software..gui.dialog.spm.TextProducerDialog.access$1(TextProducerDialog.java:279) 
at my.software..gui.dialog.spm.TextProducerDialog$2.actionPerformed(TextProducerDialog.java:201) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.Component.processMouseEvent(Component.java:6516) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
at java.awt.Component.processEvent(Component.java:6281) 
at java.awt.Container.processEvent(Container.java:2229) 
at java.awt.Component.dispatchEventImpl(Component.java:4872) 
at java.awt.Container.dispatchEventImpl(Container.java:2287) 
at java.awt.Component.dispatchEvent(Component.java:4698) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 
at java.awt.Container.dispatchEventImpl(Container.java:2273) 
at java.awt.Window.dispatchEventImpl(Window.java:2719) 
at java.awt.Component.dispatchEvent(Component.java:4698) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747) 
at java.awt.EventQueue.access$300(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:706) 
at java.awt.EventQueue$3.run(EventQueue.java:704) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 
at java.awt.EventQueue$4.run(EventQueue.java:720) 
at java.awt.EventQueue$4.run(EventQueue.java:718) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154) 
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) 
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219) 
at java.awt.Dialog.show(Dialog.java:1082) 
at java.awt.Component.show(Component.java:1655) 
at java.awt.Component.setVisible(Component.java:1607) 
at java.awt.Window.setVisible(Window.java:1014) 
at java.awt.Dialog.setVisible(Dialog.java:1005) 
at com.still.common.gui.dialog.DialogTemplate.createDialog(DialogTemplate.java:168) 
at my.software..gui.dialog.spm.TextProducerDialog.init(TextProducerDialog.java:262) 
at my.software..gui.dialog.spm.TextProducerDialog.<init>(TextProducerDialog.java:126) 
at my.software..gui.action.spm.SpmTextAction.getActionNew(SpmTextAction.java:44) 
at my.software..gui.toolbar.spm.SpmTextToolBar$3.actionPerformed(SpmTextToolBar.java:120) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) 
at java.awt.Component.processMouseEvent(Component.java:6516) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
at java.awt.Component.processEvent(Component.java:6281) 
at java.awt.Container.processEvent(Container.java:2229) 
at java.awt.Component.dispatchEventImpl(Component.java:4872) 
at java.awt.Container.dispatchEventImpl(Container.java:2287) 
at java.awt.Component.dispatchEvent(Component.java:4698) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 
at java.awt.Container.dispatchEventImpl(Container.java:2273) 
at java.awt.Window.dispatchEventImpl(Window.java:2719) 
at java.awt.Component.dispatchEvent(Component.java:4698) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747) 
at java.awt.EventQueue.access$300(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:706) 
at java.awt.EventQueue$3.run(EventQueue.java:704) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 
at java.awt.EventQueue$4.run(EventQueue.java:720) 
at java.awt.EventQueue$4.run(EventQueue.java:718) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 

私はアプリはC3P0ログがロードすると:

INFO [main] 07.04.17 14:37:17.389 [email protected]: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10] 
INFO [main] 07.04.17 14:37:17.814 [email protected]: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 2wu2r69nk3dcuwd4fg5w|1a4bd3d, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> org.hsqldb.jdbcDriver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 2wu2r69nk3dcuwd4fg5w|1a4bd3d, idleConnectionTestPeriod -> 0, initialPoolSize -> 10, jdbcUrl -> jdbc:jtds:sqlserver://derlkim0425:1433/spm_dev_mirco, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 120, maxStatements -> 70, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ] 

これは私のpom.xmlスニペットです(私はそれはJDBC4ドライバと互換性がありませんでした古いバージョン)

<!-- Hibernate Stuff --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.11.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-annotations</artifactId> 
     <version>3.5.6-Final</version> 
    <!-- Hibernate Core needs a higher version so we exclude this one --> 
     <exclusions> 
      <exclusion> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-commons-annotations</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>3.1.0.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-c3p0</artifactId> 
     <version>4.3.11.Final</version> 
     <exclusions> 
      <exclusion> 
       <artifactId>c3p0</artifactId> 
       <groupId>c3p0</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>com.mchange</groupId> 
     <artifactId>c3p0</artifactId> 
     <version>0.9.5.2</version> 
    </dependency> 
をロードしたとして、休止状態-C3P0からC3P0を除外しなければなりませんでした

私はここで根本的な原因を探す場所がわかりません... LanguageText EntityクラスのJPA設定に関連していますか? そこには何もありません...

ありがとうございました。

+0

私のプロジェクトがJDBC4を使用していないように見えることがわかりました。これは 'INFO [メイン]このログを印刷07.04.17 15:19:11.978 [email protected]alLobCreation:HHH000423:JDBCドライバとしてコンテキストのLOBの作成を報告した無効化JDBCバージョン[3] 4未満' 。しかし、Spring 4.3.11はJDBC4を使うべきです...今私はさらに混乱しています – m0rb

+0

これはSpringやC3P0とは関係ありません...あなたが使用しているドライバはJDBC3ドライバではありません。 [ウェブサイト](http://jtds.sourceforge.net))。また、すでにコアによってインクルード(または管理)されるべきであるように、 'hibernate-annotations'依存関係を削除する必要があります。 –

+0

@ M.Deinumはあなたの返事に感謝します。私が取り組んでいるアプリケーションが非常に古くて、リファクタリングに引き継いで新しいテクノロジーに取り組むためには、私は多くの作業が必要です。 JTDSからsthに行く方法はありますか? JDBC4を使用しても問題ありませんか?私は元のsqljdbcドライバをmicrosoftから試しましたが、HQLステートメントの半分は 'nvarcharからclob not possibleへの変換 'のようなエラーを表示します。ここでは良いアプローチのアイディアですか?なぜJDBC4を使用するJTDSの後継者はいないでしょうか? – m0rb

答えて

0

私は最終的に私の問題が何であるかを知り、いつものように椅子とスクリーンの間に座っていました。 setCharacterStreamメソッドの問題は、実際のJDBC4ドライバを追加することによって解決されました。私はMicrosoft自身のものを選んだ。 私はこの選択肢に伴う問題のトンを言及しませんが、それはタイトルに記載された問題を解決しました。

気になる人のために:変換に関する私の問題は本当に馬鹿でした。エンティティクラスを詳しく見て、Stringフィールドで@Lobアノテーションを見つけました。さて、それを取り除き、変換の問題を解決しました。私はJTDSでこれがなぜ働いたのか分かりません(私はJTDSがMSドライバよりも賢明で、そのような場合に内部自動変換を行っていると仮定しています...)。

関連する問題