弹簧| Java-在查询中使用Spel在子句中



我得到了一个枚举(clubrole(,该方法获得了一种方法,该方法从此枚举中返回了一个值的集合。我试图使用SPEL从查询中调用此方法。

 @Query("select m from ClubMember m " +
    "where m.student = :student " +
    "and m.role in :#{#role.getParents()}"
  )
  List<ClubMember> findByRoleWithInheritance(@Param("student") Student student, @Param("role") ClubRole role);

这通过构建,并且应用程序运行,但是当此方法称为我时,``没有找到名称角色的参数绑定!;嵌套异常是Java.lang.IllegalArgumentException:未找到名称角色的参数绑定!

我尝试了不同的方法,但没有任何方法可以。我想知道在这种情况下是否可以使用SPEL,如果是的话?

看起来这是Spring-data-jpa中的一个问题。我可以看到人们在春季博客上讨论同一问题。不确定是否有一个空旷的问题。您可以尝试作为解决方法。

@Query("select m from ClubMember m " +
    "where m.student = :#{#student}" +
    "and m.role in :#{#role.getParents()}"
  )
  List<ClubMember> findByRoleWithInheritance(@Param("student") Student student, @Param("role") ClubRole role);

或者您可以尝试使用索引访问第二个参数,例如#{[1].getParents()}

这可能会有所帮助。

相关内容

  • 没有找到相关文章

最新更新