作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个枚举(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);
这通过了构建,并且应用程序运行,但是当调用此方法时,我得到“找不到名称角色的参数绑定(bind)!”嵌套异常是 java.lang.IllegalArgumentException:未找到名称角色的参数绑定(bind)!
我尝试了不同的方法,但没有成功。我想知道在这种情况下是否可以使用 SpEl,如果可以如何?
最佳答案
看起来这是 spring-data-jpa 中的一个问题。我可以看到人们在 spring-blog 上讨论同样的问题。不确定这是否有一个 Unresolved 问题。您可以尝试以下作为解决方法。
@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()}
this可能有帮助。
关于java - SPRING|Java - 在查询中使用带有 SpEl 的 IN 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57234417/
我是一名优秀的程序员,十分优秀!