SQLServerException:"结果集已关闭"使用Streams作为返回类型时

时间:2016-08-25 08:44:47

标签: sql-server java-8 spring-data-jpa

从Microsoft SQL Server 2014尝试stream results时,我总是得到SQLServerException: The result set is closed。还尝试使用JDBC URL中的selectMethod=cursor无效。有没有MSSQL特有的东西要考虑?使用Spring Boot 1.4.0.RELEASE,Spring Data JPA 1.10.2.RELEASE。

示例存储库界面:

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);
}

1 个答案:

答案 0 :(得分:1)

我发现将调用存储库的服务方法放在事务内部可以解决这个错误。

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