mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-21 11:32:12 +00:00
Polishing.
This commit is contained in:
parent
e6c6d34948
commit
dbd99a3880
@ -187,7 +187,7 @@ public class MappingElasticsearchConverter
|
||||
|
||||
EntityInstantiator instantiator = instantiators.getInstantiatorFor(targetEntity);
|
||||
|
||||
@SuppressWarnings({"unchecked", "ConstantConditions"})
|
||||
@SuppressWarnings({ "unchecked", "ConstantConditions" })
|
||||
R instance = (R) instantiator.createInstance(targetEntity,
|
||||
new PersistentEntityParameterValueProvider<>(targetEntity, propertyValueProvider, null));
|
||||
|
||||
@ -800,6 +800,7 @@ public class MappingElasticsearchConverter
|
||||
// region queries
|
||||
@Override
|
||||
public void updateCriteriaQuery(CriteriaQuery criteriaQuery, Class<?> domainClass) {
|
||||
|
||||
ElasticsearchPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(domainClass);
|
||||
|
||||
if (persistentEntity != null) {
|
||||
@ -828,7 +829,8 @@ public class MappingElasticsearchConverter
|
||||
field.setName(property.getFieldName());
|
||||
|
||||
if (property.hasPropertyConverter()) {
|
||||
ElasticsearchPersistentPropertyConverter propertyConverter = Objects.requireNonNull(property.getPropertyConverter());
|
||||
ElasticsearchPersistentPropertyConverter propertyConverter = Objects
|
||||
.requireNonNull(property.getPropertyConverter());
|
||||
criteria.getQueryCriteriaEntries().forEach(criteriaEntry -> {
|
||||
Object value = criteriaEntry.getValue();
|
||||
if (value.getClass().isArray()) {
|
||||
|
@ -18,7 +18,10 @@ package org.springframework.data.elasticsearch.core;
|
||||
import static org.skyscreamer.jsonassert.JSONAssert.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.Base64;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@ -113,67 +116,66 @@ public class CriteriaQueryMappingUnitTests {
|
||||
|
||||
// use POJO properties and types in the query building
|
||||
CriteriaQuery criteriaQuery = new CriteriaQuery( //
|
||||
Criteria.or()
|
||||
.subCriteria( Criteria.where("birthDate") //
|
||||
.between(LocalDate.of(1989, 11, 9), LocalDate.of(1990, 11, 9)) ) //
|
||||
.subCriteria( Criteria.where( "birthDate").is(LocalDate.of(2019, 12, 28)) ) //
|
||||
Criteria.or().subCriteria(Criteria.where("birthDate") //
|
||||
.between(LocalDate.of(1989, 11, 9), LocalDate.of(1990, 11, 9))) //
|
||||
.subCriteria(Criteria.where("birthDate").is(LocalDate.of(2019, 12, 28))) //
|
||||
);
|
||||
|
||||
// mapped field name and converted parameter
|
||||
String expected = "{\n" +
|
||||
" \"bool\" : {\n" +
|
||||
" \"should\" : [\n" +
|
||||
" {\n" +
|
||||
" \"bool\" : {\n" +
|
||||
" \"must\" : [\n" +
|
||||
" {\n" +
|
||||
" \"range\" : {\n" +
|
||||
" \"birth-date\" : {\n" +
|
||||
" \"from\" : \"09.11.1989\",\n" +
|
||||
" \"to\" : \"09.11.1990\",\n" +
|
||||
" \"include_lower\" : true,\n" +
|
||||
" \"include_upper\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"adjust_pure_negative\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"bool\" : {\n" +
|
||||
" \"must\" : [\n" +
|
||||
" {\n" +
|
||||
" \"query_string\" : {\n" +
|
||||
" \"query\" : \"28.12.2019\",\n" +
|
||||
" \"fields\" : [\n" +
|
||||
" \"birth-date^1.0\"\n" +
|
||||
" ],\n" +
|
||||
" \"type\" : \"best_fields\",\n" +
|
||||
" \"default_operator\" : \"and\",\n" +
|
||||
" \"max_determinized_states\" : 10000,\n" +
|
||||
" \"enable_position_increments\" : true,\n" +
|
||||
" \"fuzziness\" : \"AUTO\",\n" +
|
||||
" \"fuzzy_prefix_length\" : 0,\n" +
|
||||
" \"fuzzy_max_expansions\" : 50,\n" +
|
||||
" \"phrase_slop\" : 0,\n" +
|
||||
" \"escape\" : false,\n" +
|
||||
" \"auto_generate_synonyms_phrase_query\" : true,\n" +
|
||||
" \"fuzzy_transpositions\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"adjust_pure_negative\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"adjust_pure_negative\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
String expected = "{\n" + //
|
||||
" \"bool\" : {\n" + //
|
||||
" \"should\" : [\n" + //
|
||||
" {\n" + //
|
||||
" \"bool\" : {\n" + //
|
||||
" \"must\" : [\n" + //
|
||||
" {\n" + //
|
||||
" \"range\" : {\n" + //
|
||||
" \"birth-date\" : {\n" + //
|
||||
" \"from\" : \"09.11.1989\",\n" + //
|
||||
" \"to\" : \"09.11.1990\",\n" + //
|
||||
" \"include_lower\" : true,\n" + //
|
||||
" \"include_upper\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" ],\n" + //
|
||||
" \"adjust_pure_negative\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" },\n" + //
|
||||
" {\n" + //
|
||||
" \"bool\" : {\n" + //
|
||||
" \"must\" : [\n" + //
|
||||
" {\n" + //
|
||||
" \"query_string\" : {\n" + //
|
||||
" \"query\" : \"28.12.2019\",\n" + //
|
||||
" \"fields\" : [\n" + //
|
||||
" \"birth-date^1.0\"\n" + //
|
||||
" ],\n" + //
|
||||
" \"type\" : \"best_fields\",\n" + //
|
||||
" \"default_operator\" : \"and\",\n" + //
|
||||
" \"max_determinized_states\" : 10000,\n" + //
|
||||
" \"enable_position_increments\" : true,\n" + //
|
||||
" \"fuzziness\" : \"AUTO\",\n" + //
|
||||
" \"fuzzy_prefix_length\" : 0,\n" + //
|
||||
" \"fuzzy_max_expansions\" : 50,\n" + //
|
||||
" \"phrase_slop\" : 0,\n" + //
|
||||
" \"escape\" : false,\n" + //
|
||||
" \"auto_generate_synonyms_phrase_query\" : true,\n" + //
|
||||
" \"fuzzy_transpositions\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" ],\n" + //
|
||||
" \"adjust_pure_negative\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" ],\n" + //
|
||||
" \"adjust_pure_negative\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
"}"; //
|
||||
|
||||
mappingElasticsearchConverter.updateQuery(criteriaQuery, Person.class);
|
||||
@ -187,67 +189,66 @@ public class CriteriaQueryMappingUnitTests {
|
||||
void shouldMapNamesAndConvertValuesInCriteriaQueryForSubCriteriaWithDate() throws JSONException {
|
||||
// use POJO properties and types in the query building
|
||||
CriteriaQuery criteriaQuery = new CriteriaQuery( //
|
||||
Criteria.or()
|
||||
.subCriteria( Criteria.where("birthDate") //
|
||||
.between(LocalDate.of(1989, 11, 9), LocalDate.of(1990, 11, 9)) ) //
|
||||
.subCriteria( Criteria.where( "createdDate").is(383745721653L) ) //
|
||||
Criteria.or().subCriteria(Criteria.where("birthDate") //
|
||||
.between(LocalDate.of(1989, 11, 9), LocalDate.of(1990, 11, 9))) //
|
||||
.subCriteria(Criteria.where("createdDate").is(383745721653L)) //
|
||||
);
|
||||
|
||||
// mapped field name and converted parameter
|
||||
String expected = "{\n" +
|
||||
" \"bool\" : {\n" +
|
||||
" \"should\" : [\n" +
|
||||
" {\n" +
|
||||
" \"bool\" : {\n" +
|
||||
" \"must\" : [\n" +
|
||||
" {\n" +
|
||||
" \"range\" : {\n" +
|
||||
" \"birth-date\" : {\n" +
|
||||
" \"from\" : \"09.11.1989\",\n" +
|
||||
" \"to\" : \"09.11.1990\",\n" +
|
||||
" \"include_lower\" : true,\n" +
|
||||
" \"include_upper\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"adjust_pure_negative\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"bool\" : {\n" +
|
||||
" \"must\" : [\n" +
|
||||
" {\n" +
|
||||
" \"query_string\" : {\n" +
|
||||
" \"query\" : \"383745721653\",\n" +
|
||||
" \"fields\" : [\n" +
|
||||
" \"created-date^1.0\"\n" +
|
||||
" ],\n" +
|
||||
" \"type\" : \"best_fields\",\n" +
|
||||
" \"default_operator\" : \"and\",\n" +
|
||||
" \"max_determinized_states\" : 10000,\n" +
|
||||
" \"enable_position_increments\" : true,\n" +
|
||||
" \"fuzziness\" : \"AUTO\",\n" +
|
||||
" \"fuzzy_prefix_length\" : 0,\n" +
|
||||
" \"fuzzy_max_expansions\" : 50,\n" +
|
||||
" \"phrase_slop\" : 0,\n" +
|
||||
" \"escape\" : false,\n" +
|
||||
" \"auto_generate_synonyms_phrase_query\" : true,\n" +
|
||||
" \"fuzzy_transpositions\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"adjust_pure_negative\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"adjust_pure_negative\" : true,\n" +
|
||||
" \"boost\" : 1.0\n" +
|
||||
" }\n" +
|
||||
String expected = "{\n" + //
|
||||
" \"bool\" : {\n" + //
|
||||
" \"should\" : [\n" + //
|
||||
" {\n" + //
|
||||
" \"bool\" : {\n" + //
|
||||
" \"must\" : [\n" + //
|
||||
" {\n" + //
|
||||
" \"range\" : {\n" + //
|
||||
" \"birth-date\" : {\n" + //
|
||||
" \"from\" : \"09.11.1989\",\n" + //
|
||||
" \"to\" : \"09.11.1990\",\n" + //
|
||||
" \"include_lower\" : true,\n" + //
|
||||
" \"include_upper\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" ],\n" + //
|
||||
" \"adjust_pure_negative\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" },\n" + //
|
||||
" {\n" + //
|
||||
" \"bool\" : {\n" + //
|
||||
" \"must\" : [\n" + //
|
||||
" {\n" + //
|
||||
" \"query_string\" : {\n" + //
|
||||
" \"query\" : \"383745721653\",\n" + //
|
||||
" \"fields\" : [\n" + //
|
||||
" \"created-date^1.0\"\n" + //
|
||||
" ],\n" + //
|
||||
" \"type\" : \"best_fields\",\n" + //
|
||||
" \"default_operator\" : \"and\",\n" + //
|
||||
" \"max_determinized_states\" : 10000,\n" + //
|
||||
" \"enable_position_increments\" : true,\n" + //
|
||||
" \"fuzziness\" : \"AUTO\",\n" + //
|
||||
" \"fuzzy_prefix_length\" : 0,\n" + //
|
||||
" \"fuzzy_max_expansions\" : 50,\n" + //
|
||||
" \"phrase_slop\" : 0,\n" + //
|
||||
" \"escape\" : false,\n" + //
|
||||
" \"auto_generate_synonyms_phrase_query\" : true,\n" + //
|
||||
" \"fuzzy_transpositions\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" ],\n" + //
|
||||
" \"adjust_pure_negative\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
" ],\n" + //
|
||||
" \"adjust_pure_negative\" : true,\n" + //
|
||||
" \"boost\" : 1.0\n" + //
|
||||
" }\n" + //
|
||||
"}"; //
|
||||
|
||||
mappingElasticsearchConverter.updateQuery(criteriaQuery, Person.class);
|
||||
|
Loading…
x
Reference in New Issue
Block a user