我是Spring新手。如何在jparepository中使用Stream方法。我想从jparepository获取数据。我还配置了applicationcontext.xml。我使用的是spring 4版本
我的存储库类
@Repository public interface CustomerRepository extends JpaRepository<Customer, Long>{ @Query("select c from Customer c") Stream<Customer> getAllFirstNames(); }
我的mainclass.java
@Transactional public class VaadinUI extends UI { @Autowired private CustomerRepository repo; System.out.println("enter into try block"); Stream<Customer> customers= repo.getAllFirstNames(); System.out.println("Customers"+ customers); }
现在我遇到了类似的错误
您正在尝试执行流式查询方法,而没有周围的事务来保持连接打开,以便实际上可以使用流。确保使用流的代码使用 @Transactional 或任何其他声明(只读)事务的方式。
如何解决这个问题。如何在 maincalss.java 中调用存储库流方法 我添加 @Transactional(readonly=true) 直到出现同样的错误。 请帮帮我!
最佳答案
您需要做几件事。
使用 Stream 处理数据需要我们在完成后关闭 Stream。 可以通过调用 Stream 上的 close() 方法或使用 try-with-resources 来完成
try (Stream<Customer> customers = repo.getAllFirstNames()) { System.out.println("Customers"+ customers); }
- 使您的方法调用此函数为
Transactional(readonly=true)
关于java - 如何在jparepository中使用Stream方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51435676/