diff --git a/pom.xml b/pom.xml index 682b56f4..bf2d4bbc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.kingsrook.qqq qqq-backend-module-rdbms - 1.0-SNAPSHOT + 0.0-SNAPSHOT diff --git a/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java b/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java index 63f6727d..087fe7cf 100644 --- a/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java +++ b/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSInsertAction.java @@ -1,7 +1,6 @@ package com.kingsrook.qqq.backend.module.rdbms.actions; -import java.io.Serializable; import java.sql.Connection; import java.util.ArrayList; import java.util.List; @@ -9,8 +8,6 @@ import java.util.stream.Collectors; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.model.actions.InsertRequest; import com.kingsrook.qqq.backend.core.model.actions.InsertResult; -import com.kingsrook.qqq.backend.core.model.actions.QFilterCriteria; -import com.kingsrook.qqq.backend.core.model.actions.QFilterOrderBy; import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecordWithStatus; import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData; @@ -37,7 +34,7 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte InsertResult rs = new InsertResult(); QTableMetaData table = insertRequest.getTable(); - List insertableFields = table.getFields().stream() + List insertableFields = table.getFields().values().stream() .filter(field -> !field.getName().equals("id")) // todo - intent here is to avoid non-insertable fields. .toList(); @@ -98,71 +95,4 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte } } - - - /******************************************************************************* - ** - *******************************************************************************/ - private String makeWhereClause(QTableMetaData table, List criteria, List params) throws IllegalArgumentException - { - List clauses = new ArrayList<>(); - for(QFilterCriteria criterion : criteria) - { - QFieldMetaData field = table.getField(criterion.getFieldName()); - String column = getColumnName(field); - String clause = column; - Integer expectedNoOfParams = null; - switch(criterion.getOperator()) - { - case EQUALS: - { - clause += " = ? "; - expectedNoOfParams = 1; - break; - } - case NOT_EQUALS: - { - clause += " != ? "; - expectedNoOfParams = 1; - break; - } - case IN: - { - clause += " IN (" + criterion.getValues().stream().map(x -> "?").collect(Collectors.joining(",")) + ") "; - break; - } - default: - { - throw new IllegalArgumentException("Unexpected operator: " + criterion.getOperator()); - } - } - clauses.add(clause); - if(expectedNoOfParams != null && criterion.getValues().size() != expectedNoOfParams) - { - throw new IllegalArgumentException("Incorrect number of values given for criteria [" + field.getName() + "]"); - } - params.addAll(criterion.getValues()); - } - - return (String.join(" AND ", clauses)); - } - - - - /******************************************************************************* - ** - *******************************************************************************/ - private String makeOrderByClause(QTableMetaData table, List orderBys) - { - List clauses = new ArrayList<>(); - - for(QFilterOrderBy orderBy : orderBys) - { - QFieldMetaData field = table.getField(orderBy.getFieldName()); - String column = getColumnName(field); - clauses.add(column + " " + (orderBy.getIsAscending() ? "ASC" : "DESC")); - } - return (String.join(", ", clauses)); - } - } diff --git a/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSQueryAction.java b/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSQueryAction.java index 5bd14abd..a60ac7ff 100644 --- a/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSQueryAction.java +++ b/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSQueryAction.java @@ -41,7 +41,8 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf QTableMetaData table = queryRequest.getTable(); String tableName = table.getName(); - String columns = table.getFields().stream() + List fieldList = new ArrayList<>(table.getFields().values()); + String columns = fieldList.stream() .map(this::getColumnName) .collect(Collectors.joining(", ")); @@ -93,7 +94,7 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf for(int i = 1; i <= metaData.getColumnCount(); i++) { - QFieldMetaData qFieldMetaData = table.getFields().get(i - 1); + QFieldMetaData qFieldMetaData = fieldList.get(i - 1); String value = QueryManager.getString(resultSet, i); // todo - types! values.put(qFieldMetaData.getName(), value); if(qFieldMetaData.getName().equals(table.getPrimaryKeyField())) diff --git a/src/test/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSActionTest.java b/src/test/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSActionTest.java index 90d64730..b6b75d73 100644 --- a/src/test/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSActionTest.java +++ b/src/test/java/com/kingsrook/qqq/backend/module/rdbms/actions/RDBMSActionTest.java @@ -4,7 +4,7 @@ package com.kingsrook.qqq.backend.module.rdbms.actions; import java.io.InputStream; import java.sql.Connection; import java.util.List; -import com.kingsrook.qqq.backend.core.model.QInstance; +import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData; import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData; import com.kingsrook.qqq.backend.core.model.metadata.QFieldType; @@ -59,6 +59,7 @@ public class RDBMSActionTest { return new QTableMetaData() .withName("person") + .withLabel("Person") .withBackendName(defineBackend().getName()) .withPrimaryKeyField("id") .withField(new QFieldMetaData("id", QFieldType.INTEGER))