当前位置: 首页 > 知识库问答 >
问题:

Spring Data MongoDB Notlike-不支持的关键字

华俊弼
2023-03-14

我已经配置了Spring数据存储库(mongoDB)和作者实体,如下所示:

Repository :
   public interface AuthorRepository extends MongoRepository< Author, Long > {
        Iterable<Author> findByFirstName( String personName );
        Iterable<Author> findByFirstNameLike( String personName );
        Iterable<Author> findByFirstNameNotLike( String firstName );
    }
Entity Class :   
    @Document( collection = "author" )
    @Data
    public class Author {
        @Id
        private String          id;

        private String          firstName;

      //..
    }

我能够运行前两个查询,没有任何错误。但“NotLike”方法会给我以下运行时错误:

Caused by: java.lang.IllegalArgumentException: Unsupported keyword!
    at org.springframework.data.mongodb.repository.query.MongoQueryCreator.from(MongoQueryCreator.java:252) ~[spring-data-mongodb-1.8.4.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.query.MongoQueryCreator.create(MongoQueryCreator.java:114) ~[spring-data-mongodb-1.8.4.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.query.MongoQueryCreator.create(MongoQueryCreator.java:58) ~[spring-data-mongodb-1.8.4.RELEASE.jar:na]
    ...

我查看了MongoQueryCreator。来自(MongoQueryCreator.java:252)并找到了部分。类型NOT\u LIKE(不象)在那里的switch case语句及其抛出的IllegalArgumentException(“不支持的关键字”)上未处理

Spring Data MongoDB最新的留档(1.8.4. RELEASE)说Notlike是一个受支持的查询关键字。但是它似乎在实现中丢失了。

这里是否缺少任何内容,或者我应该提出错误修复?

共有1个答案

尤俊誉
2023-03-14

Spring Data MongoDB最新的留档(1.8.4. RELEASE)说Notlike是一个受支持的查询关键字。但是它似乎在实现中丢失了。

Spring Data MongoDB的当前(1.9.1)版本仍然不支持Notlike-参见表5。查询方法支持的关键字。

这里是否缺少任何内容,或者我应该提出错误修复?

不是错误修复,因为运行时错误与不支持的关键字一致,但您可以在Spring Data MongoDB JIRA上打开功能请求。

同时,为了让您的代码运行,您可以实现自己的findByFirstNameNotlike方法,使用Query注释甚至Querydsl进行更复杂的查询。

 类似资料:
  • 我试图从azure key vault中为azure函数获取连接字符串。这些是我做的步骤, > 在azure函数中创建了一个托管标识(系统分配) 在azure密钥库中创建秘密 如有任何帮助,将不胜感激

  • 问题内容: 我无法连接到SQL Server,项目的连接字符串为: 我收到此错误: 不支持的关键字:“元数据” 如何解决此错误? 问题答案: 该连接字符串仅受实体框架支持。(公平地说,关键字“ entities”在键名中!)如果要在ADO原始连接中使用连接字符串,请除去字符串部分之外的所有内容,包括s: 更改为:

  • 如果选项"keys"设置为true,那么我们能够通过键盘上的按键进来选择框的移动。下面的键可以使用,默认的功能如下: 按键 动作 方向键 每次以10像素为单位移动选区 Shift+方向键 每次以1像素为单位移动选区 Ctrl+方向键 每次以10像素为单位扩缩选区 Ctrl+Shift+方向键 每次以1像素为单位扩缩选区 当然你也可以自己通过设置"keys"这个选项来覆盖默认键设置,对象有下面的属性

  • 问题内容: 我在课堂上有一个Ctrl-drag作为。现在我正在使用此代码 当我在模拟器上启动我的应用程序并单击时,我收到了此日志 我没有崩溃或发生什么事,但是没有显示键盘。我也尝试从中进行设置,但相同。 我还注意到,无论何时单击 任何 键盘,都不会显示(但 默认 键盘不会显示日志) 我正在使用Xcode-Beta 3,有人遇到过此问题吗? 问题答案: 更新到最新的Xcode Beta之后,我也遇到

  • 我需要在JAX-WS中通过客户端连接到外部服务器。客户端在Wildfly 8上运行。使用Java8连接是正常的。但我在Java7中连接到服务器时遇到了问题(我尝试了u45、67、79)。服务器端安全性的属性为https://www.ssllabs.com/ssltest/analyze.html?d=app.bundesnetzagentur.de 在部分“密码套件”中有四个密码。源代码不应支持J

  • 我想将前面文章中提到的要求扩展到支持删除。我们有两个数据模型对象组织和部门共享一对多的关系。通过下面的映射,我可以从organization对象读取部门列表。我没有添加cascade ALL属性来限制在创建组织时添加部门。