2016-09-23 25 views
1

私は、SpringBoot + JPAアプリケーションのWindows認証を使用してUnixBoxからSQLServerに接続するためにjtdsドライバを使用しています。そのスタンドアロンアプリケーションであり、Webベースのアプリケーションではありません。私は正常同じに接続することですが、私はJPARepositoryを使用していくつかのデータを保存しようとすると、私は次の例外を受け取る:SqlServer接続にjtdsを使用しているときの例外

java.lang.AbstractMethodError: null 
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setCharacterStream(JtdsPreparedStatement.java:1274) ~[jtds-1.3.1.jar:1.3.1] 

私はJtdsPreparedStatementに対応するソースコードをチェックし、何の実装が存在しないことがわかりましたこの方法の場合:

@Override 
public void setCharacterStream(int parameterIndex, Reader reader, 
     long length) throws SQLException { 
    // TODO Auto-generated method stub 
    throw new AbstractMethodError(); 
} 

提案のとおり、here;我々はそれを実装することができ、それは動作するはずです。誰かが、私の実装をJtdsPreparedStatementのように実行時にSpringコンテナで選択して登録する方法を説明してください。または他の選択肢がある場合は?

を編集します。JtdsPreparedStatementには、デフォルトスコープのコンストラクタがあります。それを拡張することはできません

答えて

0

これにはオープンjTDS bugがあります。違いだった最後のパラメータであることで

public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException 

旧メソッドシグネチャ:

public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException 

新しいメソッドシグネチャ要するに、JDBC標準は、文字ストリームを設定するための2つの異なる方法を指定しますlongからintに変更されました。

jTDSは、Hibernateによって使用される新しいメソッドを実装していないため、AbstractMethodErrorを取得します。

あなたはここに2つのオプションがあります。このメソッドをサポートするMicrosoft JDBCドライバへ

  1. スイッチを
  2. のjTDSのソースコードを取得し、古い方法を転送することによって方法を自分(最も可能性が高いの実装新しい方法)

私の経験から、すぐに公式リリースにはカウントしないでください。

関連する問題