Ported changed made for version 4.1.1

This commit is contained in:
Luca Frosini 2022-12-02 15:48:10 +01:00
parent a204a2ec6c
commit c9e3f8c8c3
4 changed files with 17 additions and 3 deletions

View File

@ -6,6 +6,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- Switched to gcube-smartgears-bom 3.0.0
## [v4.1.1]
- Fixed bug on JSONQuery for Facets which does not have any properties to match [#24237]
## [v4.1.0-SNAPSHOT]

View File

@ -120,7 +120,10 @@ public class JsonQuery {
Map<String, Object> map = new HashMap<>();
map.put("limit", JsonQuery.UNBOUNDED_LIMIT);
OResultSet resultSet = oDatabaseDocument.query(stringBuffer.toString(), map);
String query = stringBuffer.toString();
logger.trace("Going to execute the following query:\n{} \n from the JSONQuery\n{}", query, objectMapper.writeValueAsString(jsonQuery));
OResultSet resultSet = oDatabaseDocument.query(query, map);
ArrayNode arrayNode = objectMapper.createArrayNode();

View File

@ -24,6 +24,8 @@ public class JsonQueryFacet extends JsonQueryEntity {
public StringBuffer analize(StringBuffer stringBuffer) throws SchemaException, ResourceRegistryException {
StringBuffer newBuffer = new StringBuffer();
int size = jsonNode.size();
boolean entry = entryPoint;
if(jsonNode.has(_IN)) {
if(!entryPoint) {
@ -35,9 +37,14 @@ public class JsonQueryFacet extends JsonQueryEntity {
jsonQueryConsistsOf.setDirection(Direction.OUT);
stringBuffer = jsonQueryConsistsOf.analize(stringBuffer);
entry = false;
/* Need to substract 1 from size otherwise
* it add WHERE at the end because _in
* is not a property to be used for a WHERE compare
*/
--size;
}
int size = jsonNode.size();
newBuffer.append("SELECT FROM ");
if(!entry) {

View File

@ -66,7 +66,7 @@ public class JsonQueryTest extends ContextTest {
@Test
public void testSingleCreateQuery() throws Exception {
File queriesDirectory = getQueriesDirectory();
File jsonQueryFile = new File(queriesDirectory, "query5.json");
File jsonQueryFile = new File(queriesDirectory, "query7.json");
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonQueryFile);
logger.info("Going to test the following JSON query {}", jsonNode.toString());