@EnableMongoRepositoriesが指定されたSpring/MongoDB @Queryアノテーションを使用していますが、Stringパラメータの置換によって解析/数値書式の例外が発生します。私はデバッグの目的で文字列の日付をハードコードするときに動作します。私は依存関係や何かこれを働かせるために欠けていますか?ここでは、関連するセクションです:Spring MongoDB @Queryパラメータ?0は置換されていません
これは動作します:
@Query("{'MyData.fromDatestamp' : { $gte: { $numberLong: \"20130801000000\" } }}")
List<MyData> findMyData();
これはしていません:
@Query("{'MyData.fromDatestamp' : { $gte: { $numberLong: ?0 } }}")
List<MyData> findMyData(String fromDatestamp);
エラー:ここ
java.lang.NumberFormatException: For input string: "_param_0"
は私の依存関係です:
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")
}
...
compile("org.springframework.boot:spring-boot-starter-web") {
exclude module: "spring-boot-starter-tomcat"
}
compile("org.springframework.boot:spring-boot-starter-jetty")
compile("org.springframework.data:spring-data-mongodb")
compile("org.mongodb:mongo-java-driver:3.2.2")
compile("com.fasterxml.jackson.core:jackson-core:2.8.0")
compile("com.fasterxml.jackson.core:jackson-annotations:2.8.0")
そして、ここでは私の設定です:
また@Configuration public class MongoConfig extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return databaseName;
}
@Bean
public MongoClient mongoClient() throws Exception {
return new MongoClient(dataStoreHost,dataStorePort);
}
@Override
public Mongo mongo() throws Exception {
return mongoClient();
}
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(mongoClient(), databaseName);
}
@Override
@Bean
public MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}
、私はJSONParseExceptionで失敗これらのバリエーションを試してみました:
@Query("{'MyData..fromDatestamp' : { $gte: { $numberLong: \"?0\" } }}")
@Query("{'MyData..fromDatestamp' : { $gte: { $numberLong: '?0' } }}")
どのような洞察や考えにも感謝の意を表します。