首页 > 解决方案 > findCategoryByName(String name) 可能的解决方案(Lambda 表达式显示错误)?- 弹簧靴

问题描述

我有两个具有多对多关系的实体(产品、类别),我要做的就是在控制器中有一个方法,该方法将按某个类别名称返回所有产品。我有两个存储库(扩展 CrudRepository)和两个类的两个服务,我有 ProductController。

ProductServiceImpl.java

ProductServiceImpl.java

我试图在 CategoryService 中实现它,例如:

CategoryServiceImpl.java

然后在 ProductService 实现中调用这个方法,这样我就可以返回所有具有相应名称的产品,但是 lambda 表达式不允许我返回一个类别对象,也不能将它分配给其他类别对象,有什么建议吗?

标签: springrestspring-boot

解决方案


那是因为您不能修改 lambda 内部的外部变量(它们至少应该是有效的最终变量,请参阅this)。

作为一种解决方法,您可以替换forEach()为常规 for 或增强的 for 循环。


推荐阅读