Spring 数据 MongoDB NotLike - 不支持的关键字
Spring Data MongoDB NotLike - Unsupported keyword
我已经配置了一个 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.from(MongoQueryCreator.java:252)
,发现 Part.Type.NOT_LIKE
没有在 switch-case
语句中处理,它抛出 IllegalArgumentException("Unsupported keyword!");
Spring 数据 MongoDB latest documentation (1.8.4.RELEASE) 表示 NotLike 是受支持的查询关键字。但是在实现中好像少了。
这里有什么遗漏或者我应该提出错误修复吗?
Spring Data MongoDB latest documentation (1.8.4.RELEASE) says NotLike
is a supported query keyword. But it seems to be missing in the
implementation.
NotLike 在 Spring 数据 MongoDB 的当前 (1.9.1) 版本中仍然不受支持 - 请参阅 Table 5. Supported keywords for query methods。 =15=]
Is there anything missing here or I should raise a bug fix ?
不是错误修复,因为运行时错误与不支持的关键字一致,但您可以在 Spring 数据 MongoDB JIRA 上打开功能请求。
同时,要获取代码 运行,您可以使用 Query annotation or even Querydsl for .[=15= 实现自己的 findByFirstNameNotLike 方法]
我已经配置了一个 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.from(MongoQueryCreator.java:252)
,发现 Part.Type.NOT_LIKE
没有在 switch-case
语句中处理,它抛出 IllegalArgumentException("Unsupported keyword!");
Spring 数据 MongoDB latest documentation (1.8.4.RELEASE) 表示 NotLike 是受支持的查询关键字。但是在实现中好像少了。
这里有什么遗漏或者我应该提出错误修复吗?
Spring Data MongoDB latest documentation (1.8.4.RELEASE) says NotLike is a supported query keyword. But it seems to be missing in the implementation.
NotLike 在 Spring 数据 MongoDB 的当前 (1.9.1) 版本中仍然不受支持 - 请参阅 Table 5. Supported keywords for query methods。 =15=]
Is there anything missing here or I should raise a bug fix ?
不是错误修复,因为运行时错误与不支持的关键字一致,但您可以在 Spring 数据 MongoDB JIRA 上打开功能请求。
同时,要获取代码 运行,您可以使用 Query annotation or even Querydsl for