繁体   English   中英

如何在jparepository中使用Stream方法

[英]How to use Stream method in jparepository

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

现在我有错误
您正在尝试在没有周围事务的情况下执行流查询方法,而该事务不会使连接保持打开状态,从而可以实际使用Stream。 确保使用流的代码使用@Transactional或其他任何声明(只读)事务的方式。

如何解决这个问题。如何在maincalss.java中调用存储库流方法,我添加@Transactional(readonly = true),直到遇到相同的错误。 请帮帮我!

您需要做几件事。

  1. 使用流处理数据需要我们在完成流后关闭流。 可以通过在Stream上调用close()方法或使用try-with-resources来完成。

      try (Stream<Customer> customers = repo.getAllFirstNames()) { System.out.println("Customers"+ customers); } 
  2. 使您的方法将此函数调用为Transactional(readonly=true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM