java - 另一种写下这一行的方法? JPA 的东西

标签 java spring hibernate spring-data-jpa

该行是:

recipeRepository.findAll().iterator().forEachRemaining(recipeSet::add);

recipeRepository 是我的 Spring 数据层。它找到数据库中的所有食谱并将它们添加到集合中。我不太熟悉 lambda 和 :: 运算符,所以我想知道是否还有另一种方法可以写下参数 recipeSet::add

最佳答案

问题是 findAll() 方法返回一个迭代器。您可以通过在 recipeRepository 中覆盖它来解决该问题,如下所示

@Query("SELECT r FROM Recipe r")
Set<Recipe> findAll();

这样它将返回一个集合,然后你可以执行以下操作:

Set<Recipe> recipeSet = recipeRepository.findAll();

不进行任何转换或迭代

关于java - 另一种写下这一行的方法? JPA 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48569526/

相关文章:

java - 总百分比不正确

java - 新的 Spring 项目构建失败

java - Spring Boot 2.3 中不打印自定义异常的 Stacktrace

java - 尝试使用 spring 和 hibernate 用户 oracle db 时出错

java - 使用 CSS 在 tabpane 中居中选项卡

java - 自定义 URLClassLoader 不使用自定义类路径

java - 将 nvarchar 值 '....' 转换为数据类型 int 时转换失败

java - ApplicationContextAware 在 Spring 3.0 中不起作用

java - 如何使用 session 工厂从 Java Hibernate 执行 sql 存储过程?

performance - Hibernate 标准与 HQL : which is faster?