Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring SpEL中转义MongoDB正则表达式字符-获取SpelParseException_Java_Spring_Mongodb_Spring Boot_Spring El - Fatal编程技术网

Java 在Spring SpEL中转义MongoDB正则表达式字符-获取SpelParseException

Java 在Spring SpEL中转义MongoDB正则表达式字符-获取SpelParseException,java,spring,mongodb,spring-boot,spring-el,Java,Spring,Mongodb,Spring Boot,Spring El,我试图重写MongoRepository::findAll()方法来定义自定义的@Query。我遵循MongoRepository中的类似逻辑来检查用户角色,并创建一个动态查询来获取授权记录 我在我的BlogRepository中设置了以下方法,它扩展了MongoRepository: @Query("{ user_id : ?#{ hasRole('ROLE_ADMIN') ? /./ : principal.userId } } ") @Override Page<Blog>

我试图重写MongoRepository::findAll()方法来定义自定义的
@Query
。我遵循MongoRepository中的类似逻辑来检查用户角色,并创建一个动态查询来获取授权记录

我在我的BlogRepository中设置了以下方法,它扩展了MongoRepository:

@Query("{ user_id : ?#{ hasRole('ROLE_ADMIN') ?  /./  : principal.userId } } ")
@Override
Page<Blog> findAll(Pageable pageable);

当下面的mongo查询运行并重新运行所需的值时,我相信,我只需要转义
/./
字符,这样SpEL就不会试图解析它

    { 'user_id' : /./ } 
我找不到SpEL的转义字符,但使用了以下选项,仍然会出现类似的解析异常:

  • '/./'
  • #{/}
    --用SpEL表达式包装
  • /.*/
你能帮我吗

我让它工作了:

@Query("  ?#{ hasRole('ROLE_ADMIN') ? '{}' : {'user_id' :  principal.userId } } ")

也许你可以使用像这样的转义函数

%?#{escape(...)}
%?#{escape(...)}