2016-08-25 8 views
3

Microsoft SQL Server 2014からstream resultsに接続しようとすると、いつもSQLServerException: The result set is closedが返されます。また、JDBC URLのselectMethod=cursorで無駄に試してみました。考慮すべき特定のMSSQLがありますか? Springブート1.4.0.RELEASE、SpringデータJPA 1.10.2.RELEASEを使用します。SQLServerException:戻り値の型としてStreamsを使用すると、結果セットが閉じられる

サンプルリポジトリインタフェース:

package sample; 

import sample.Contact; 
import org.springframework.data.jpa.repository.JpaRepository; 
import org.springframework.stereotype.Repository; 

import java.util.stream.Stream; 

@Repository 
public interface MyRepository extends JpaRepository<Contact, String> { 

    Stream<Contact> findByContactid(String contactid); 
} 
+0

解決方法はありますか?私は同じ問題を抱えています。ストリームの代わりにリストだけに切り替えると、すべてが機能します(しかし、遅く、メモリ効率の良い方法で)。 –

+0

残念ながら、私はこれに対する解決策を見出しませんでした。私が正しく覚えていれば、ページングのようなものを使用してしまいました。 – slauth

答えて

1

リポジトリが私のために、このエラーを取り除くトランザクションの内側にある呼び出してサービスメソッドを作ることを私を見つけました。

@Transactional(readOnly=true) 
public List<Results> myServiceMethod() { 
    return repo.findByContactid("12345").map(c->c.getName()).collect(toList()); 
} 
関連する問題