Java 在@Query中使用{principal}会导致“在null上找不到属性或字段'principal'”

Java 在@Query中使用{principal}会导致“在null上找不到属性或字段'principal'”,java,spring,spring-boot,spring-security,spring-data-jpa,Java,Spring,Spring Boot,Spring Security,Spring Data Jpa,接下来,将此@Query添加到repo时,在null上找不到属性或字段“principal”的Spring崩溃: @Query("select count(e) from #{#entityName} e where e.user_id = #{principal?.id}") 对我来说,这似乎是一个循环依赖性问题:在我的例子中,UserDetailsServiceImpl需要一个JpaRepository。生成此repo后,Spring尝试评估@Query,该查询本身依赖于安全配置Secur

接下来,将此@Query添加到repo时,在null上找不到属性或字段“principal”的Spring崩溃:

@Query("select count(e) from #{#entityName} e where e.user_id = #{principal?.id}")
对我来说,这似乎是一个循环依赖性问题:在我的例子中,UserDetailsServiceImpl需要一个JpaRepository。生成此repo后,Spring尝试评估@Query,该查询本身依赖于安全配置SecurityEvaluationContextension bean。安全配置取决于UserDetails服务。和所以开

我尝试了不同的方法来逃避这个@DependsOn,删除@EnableJpaRepository,移动配置,但没有成功。因为我对春天还很陌生,我觉得我在做一些非常愚蠢的事情,所以我要问你:


这个星座-Spring安全数据与UserDetails服务的集成取决于JpaRepo-可能吗?我可能做错了什么?

而且很愚蠢:我忘记了表示查询参数的问号

@Queryselect counte from{entityName}e其中e.user_id=?{principal?.id}