这里有一个存储库,我想找到一个集合中menu_id的实体,我觉得我的函数名称没问题
@Repository
public interface MenuEntityRepository extends JpaRepository<MenuEntity,Long>{
ArrayList<MenuEntity> findByMenuIdIn(List<Long> menuId);
}
但我总是得到错误:
java.lang.IllegalArgumentException: Parameter value element [1] did not match expected type [java.lang.Long (n/a)]
menu_id是@Entity菜单
as long menu_id
但在mysql类型中是bigint(20)
所以我把menu_id作为BigInteger列表,所以我收到了错误
答案 0 :(得分:0)
好看,ArrayList<MenuEntity>
应该更改为List<MenuEntity>
,因为它不在集合类中,arraylist在抽象集合类中,您需要首先尝试。如果可能有帮助
以下是我的回答
我认为您的findMyMenuIdIn(List<Long> menuId)
不受支持您需要使用您的服务模块进行自己的查询,您无法在存储库中执行此操作findByMenuId (Long menuId)
并使服务模块重复执行这个查询。
答案 1 :(得分:0)
您的方法名称findByMenuIdIn(List<Long> menuid)
确实正确且受支持。我用它,它适合我。但是,您得到的错误与传递给您调用它的方法的参数有关。 java.lang.IllegalArgumentException: Parameter value element [1] did not match expected type [java.lang.Long (n/a)]
表示您的集合中的第二项可能不是Long
类型。检查并确保集合中的所有元素(方法的参数)都是Long
类型。您可能希望发布调用方法的代码段,包括如何在此处创建集合。我希望这有帮助!