diff --git a/src/org/kar/archidata/dataAccess/DataAccess.java b/src/org/kar/archidata/dataAccess/DataAccess.java index 743477e..1a7e684 100644 --- a/src/org/kar/archidata/dataAccess/DataAccess.java +++ b/src/org/kar/archidata/dataAccess/DataAccess.java @@ -126,7 +126,7 @@ public class DataAccess { return true; } try { - return 1 == DataAccess.executeSimpleQuerry("CREATE DATABASE `" + name + "`;", new DBInterfaceRoot(true)); + return 1 == DataAccess.executeSimpleQuery("CREATE DATABASE `" + name + "`;", new DBInterfaceRoot(true)); } catch (final SQLException | IOException ex) { ex.printStackTrace(); LOGGER.error("Can not check if the DB exist!!! {}", ex.getMessage()); @@ -873,7 +873,7 @@ public class DataAccess { query.append(")"); final OrderBy orders = options.get(OrderBy.class); if (orders != null) { - orders.generateQuerry(query, tableName); + orders.generateQuery(query, tableName); } LOGGER.warn("generate the query: '{}'", query.toString()); // prepare the request: @@ -1148,7 +1148,7 @@ public class DataAccess { query.append(" "); final OrderBy orders = options.get(OrderBy.class); if (orders != null) { - orders.generateQuerry(query, tableName); + orders.generateQuery(query, tableName); } query.append(" "); final String deletedFieldName = AnnotationTools.getDeletedFieldName(clazz); @@ -1188,7 +1188,7 @@ public class DataAccess { addOn.insertData(ps, field, data, iii); } } - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); return ps.executeUpdate(); } } catch (final SQLException ex) { @@ -1248,14 +1248,14 @@ public class DataAccess { } } - public static int executeSimpleQuerry(final String query, final QueryOption... option) throws SQLException, IOException { + public static int executeSimpleQuery(final String query, final QueryOption... option) throws SQLException, IOException { final QueryOptions options = new QueryOptions(option); final DBEntry entry = DBInterfaceOption.getAutoEntry(options); final Statement stmt = entry.connection.createStatement(); return stmt.executeUpdate(query); } - public static boolean executeQuerry(final String query, final QueryOption... option) throws SQLException, IOException { + public static boolean executeQuery(final String query, final QueryOption... option) throws SQLException, IOException { final QueryOptions options = new QueryOptions(option); final DBEntry entry = DBInterfaceOption.getAutoEntry(options); final Statement stmt = entry.connection.createStatement(); @@ -1272,9 +1272,16 @@ public class DataAccess { return values.get(0); } - public static void generateSelectField(final StringBuilder querySelect, final StringBuilder query, final Class clazz, final QueryOptions options, final CountInOut count) throws Exception { + public static void generateSelectField(// + final StringBuilder querySelect, // + final StringBuilder query, // + final Class clazz, // + final QueryOptions options, // + final CountInOut count// + ) throws Exception { final boolean readAllfields = QueryOptions.readAllColomn(options); final String tableName = AnnotationTools.getTableName(clazz, options); + final String primaryKey = AnnotationTools.getPrimaryKeyField(clazz).getName(); boolean firstField = true; for (final Field elem : clazz.getFields()) { @@ -1298,7 +1305,7 @@ public class DataAccess { } querySelect.append(" "); if (addOn != null) { - addOn.generateQuerry(tableName, elem, querySelect, query, name, count, options); + addOn.generateQuery(tableName, primaryKey, elem, querySelect, query, name, count, options); } else { querySelect.append(tableName); querySelect.append("."); @@ -1340,23 +1347,23 @@ public class DataAccess { condition.whereAppendQuery(query, tableName, options, deletedFieldName); final GroupBy groups = options.get(GroupBy.class); if (groups != null) { - groups.generateQuerry(query, null); + groups.generateQuery(query, null); } final OrderBy orders = options.get(OrderBy.class); if (orders != null) { - orders.generateQuerry(query, tableName); + orders.generateQuery(query, tableName); } final Limit limit = options.get(Limit.class); if (limit != null) { - limit.generateQuerry(query, tableName); + limit.generateQuery(query, tableName); } LOGGER.warn("generate the query: '{}'", query.toString()); // prepare the request: final PreparedStatement ps = entry.connection.prepareStatement(query.toString(), Statement.RETURN_GENERATED_KEYS); final CountInOut iii = new CountInOut(1); - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); if (limit != null) { - limit.injectQuerry(ps, iii); + limit.injectQuery(ps, iii); } // execute the request final ResultSet rs = ps.executeQuery(); @@ -1409,7 +1416,7 @@ public class DataAccess { continue; } if (addOn != null) { - addOn.fillFromQuerry(rs, elem, data, count, options, lazyCall); + addOn.fillFromQuery(rs, elem, data, count, options, lazyCall); } else { setValueFromDb(elem.getType(), data, count, elem, rs, countNotNull); } @@ -1440,15 +1447,15 @@ public class DataAccess { condition.whereAppendQuery(query, tableName, options, deletedFieldName); final Limit limit = options.get(Limit.class); if (limit != null) { - limit.generateQuerry(query, tableName); + limit.generateQuery(query, tableName); } LOGGER.warn("generate the query: '{}'", query.toString()); // prepare the request: final PreparedStatement ps = entry.connection.prepareStatement(query.toString(), Statement.RETURN_GENERATED_KEYS); final CountInOut iii = new CountInOut(1); - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); if (limit != null) { - limit.injectQuerry(ps, iii); + limit.injectQuery(ps, iii); } // execute the request final ResultSet rs = ps.executeQuery(); @@ -1540,7 +1547,7 @@ public class DataAccess { LOGGER.debug("APPLY: {}", query.toString()); final PreparedStatement ps = entry.connection.prepareStatement(query.toString()); final CountInOut iii = new CountInOut(1); - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); return ps.executeUpdate(); } finally { entry.close(); @@ -1577,7 +1584,7 @@ public class DataAccess { LOGGER.debug("APPLY UPDATE: {}", query.toString()); final PreparedStatement ps = entry.connection.prepareStatement(query.toString()); final CountInOut iii = new CountInOut(1); - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); return ps.executeUpdate(); } finally { entry.close(); @@ -1618,7 +1625,7 @@ public class DataAccess { try { final PreparedStatement ps = entry.connection.prepareStatement(query.toString()); final CountInOut iii = new CountInOut(1); - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); return ps.executeUpdate(); } finally { entry.close(); @@ -1634,7 +1641,7 @@ public class DataAccess { query.append(tableName); query.append("`"); try { - LOGGER.trace("Execute Querry: {}", query.toString()); + LOGGER.trace("Execute Query: {}", query.toString()); // Remove main table final PreparedStatement ps = entry.connection.prepareStatement(query.toString()); ps.executeUpdate(); @@ -1666,7 +1673,7 @@ public class DataAccess { query.append(tableName); query.append("`"); try { - LOGGER.trace("Execute Querry: {}", query.toString()); + LOGGER.trace("Execute Query: {}", query.toString()); // Remove main table final PreparedStatement ps = entry.connection.prepareStatement(query.toString()); ps.executeUpdate(); @@ -1721,15 +1728,15 @@ public class DataAccess { final GroupBy groups = options.get(GroupBy.class); if (groups != null) { - groups.generateQuerry(query, null); + groups.generateQuery(query, null); } final OrderBy orders = options.get(OrderBy.class); if (orders != null) { - orders.generateQuerry(query, null); + orders.generateQuery(query, null); } final Limit limit = options.get(Limit.class); if (limit != null) { - limit.generateQuerry(query, null); + limit.generateQuery(query, null); } LOGGER.warn("generate the query: '{}'", query.toString()); // prepare the request: @@ -1741,9 +1748,9 @@ public class DataAccess { } iii.inc(); } - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); if (limit != null) { - limit.injectQuerry(ps, iii); + limit.injectQuery(ps, iii); } // execute the request final ResultSet rs = ps.executeQuery(); @@ -1756,7 +1763,7 @@ public class DataAccess { // find field name ... final Field field = AnnotationTools.getFieldNamed(clazz, label); if (field == null) { - throw new DataAccessException("Querry with unknown field: '" + label + "'"); + throw new DataAccessException("Query with unknown field: '" + label + "'"); } // create the callback... final RetreiveFromDB element = createSetValueFromDbCallback(jjj + 1, field); diff --git a/src/org/kar/archidata/dataAccess/DataAccessAddOn.java b/src/org/kar/archidata/dataAccess/DataAccessAddOn.java index 80acfad..3c849be 100644 --- a/src/org/kar/archidata/dataAccess/DataAccessAddOn.java +++ b/src/org/kar/archidata/dataAccess/DataAccessAddOn.java @@ -45,11 +45,19 @@ public interface DataAccessAddOn { return false; } - void generateQuerry(@NotNull String tableName, @NotNull Field field, @NotNull final StringBuilder querySelect, @NotNull final StringBuilder query, @NotNull String name, @NotNull CountInOut count, - QueryOptions options) throws Exception; + void generateQuery(// + @NotNull String tableName, // + @NotNull final String primaryKey, // + @NotNull Field field, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // + @NotNull String name, // + @NotNull CountInOut count, // + QueryOptions options// + ) throws Exception; // Return the number of colomn read - void fillFromQuerry(ResultSet rs, Field field, Object data, CountInOut count, QueryOptions options, final List lazyCall) + void fillFromQuery(ResultSet rs, Field field, Object data, CountInOut count, QueryOptions options, final List lazyCall) throws Exception, SQLException, IllegalArgumentException, IllegalAccessException; /** Create associated table of the specific element. diff --git a/src/org/kar/archidata/dataAccess/DataExport.java b/src/org/kar/archidata/dataAccess/DataExport.java index e183b78..dea17cb 100644 --- a/src/org/kar/archidata/dataAccess/DataExport.java +++ b/src/org/kar/archidata/dataAccess/DataExport.java @@ -234,7 +234,7 @@ public class DataExport { return iii; } } - throw new DataAccessException("Querry with unknown field: '" + name + "'"); + throw new DataAccessException("Query with unknown field: '" + name + "'"); } public static TableQuery queryTable(final List headers, final String query, final List parameters, final QueryOption... option) throws Exception { @@ -260,15 +260,15 @@ public class DataExport { final GroupBy groups = options.get(GroupBy.class); if (groups != null) { - groups.generateQuerry(query, null); + groups.generateQuery(query, null); } final OrderBy orders = options.get(OrderBy.class); if (orders != null) { - orders.generateQuerry(query, null); + orders.generateQuery(query, null); } final Limit limit = options.get(Limit.class); if (limit != null) { - limit.generateQuerry(query, null); + limit.generateQuery(query, null); } LOGGER.warn("generate the query: '{}'", query.toString()); // prepare the request: @@ -280,9 +280,9 @@ public class DataExport { } iii.inc(); } - condition.injectQuerry(ps, iii); + condition.injectQuery(ps, iii); if (limit != null) { - limit.injectQuerry(ps, iii); + limit.injectQuery(ps, iii); } // execute the request final ResultSet rs = ps.executeQuery(); diff --git a/src/org/kar/archidata/dataAccess/GroupBy.java b/src/org/kar/archidata/dataAccess/GroupBy.java index 9c42b16..93bfca3 100644 --- a/src/org/kar/archidata/dataAccess/GroupBy.java +++ b/src/org/kar/archidata/dataAccess/GroupBy.java @@ -14,7 +14,7 @@ public class GroupBy extends QueryOption { this.childs = List.of(childs); } - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (this.childs.size() == 0) { return; } @@ -33,7 +33,7 @@ public class GroupBy extends QueryOption { query.append("\n"); } - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { // nothing to add. } } diff --git a/src/org/kar/archidata/dataAccess/Limit.java b/src/org/kar/archidata/dataAccess/Limit.java index 31a2a85..463655d 100644 --- a/src/org/kar/archidata/dataAccess/Limit.java +++ b/src/org/kar/archidata/dataAccess/Limit.java @@ -9,11 +9,11 @@ public class Limit extends QueryOption { this.limit = limit; } - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { query.append(" LIMIT ? \n"); } - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { DataAccess.addElement(ps, this.limit, iii); iii.inc(); } diff --git a/src/org/kar/archidata/dataAccess/OrderBy.java b/src/org/kar/archidata/dataAccess/OrderBy.java index d66bbec..13ed706 100644 --- a/src/org/kar/archidata/dataAccess/OrderBy.java +++ b/src/org/kar/archidata/dataAccess/OrderBy.java @@ -14,7 +14,7 @@ public class OrderBy extends QueryOption { this.childs = List.of(childs); } - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (this.childs.size() == 0) { return; } @@ -35,7 +35,7 @@ public class OrderBy extends QueryOption { query.append("\n"); } - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { // nothing to add. } } diff --git a/src/org/kar/archidata/dataAccess/QueryAnd.java b/src/org/kar/archidata/dataAccess/QueryAnd.java index e0a8e30..e6a720c 100644 --- a/src/org/kar/archidata/dataAccess/QueryAnd.java +++ b/src/org/kar/archidata/dataAccess/QueryAnd.java @@ -22,7 +22,7 @@ public class QueryAnd implements QueryItem { } @Override - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (this.childs.size() >= 1) { query.append(" ("); } @@ -33,7 +33,7 @@ public class QueryAnd implements QueryItem { } else { query.append(" AND "); } - elem.generateQuerry(query, tableName); + elem.generateQuery(query, tableName); } if (this.childs.size() >= 1) { query.append(")"); @@ -41,10 +41,10 @@ public class QueryAnd implements QueryItem { } @Override - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { for (final QueryItem elem : this.childs) { - elem.injectQuerry(ps, iii); + elem.injectQuery(ps, iii); } } diff --git a/src/org/kar/archidata/dataAccess/QueryCondition.java b/src/org/kar/archidata/dataAccess/QueryCondition.java index d1ca883..94d17c5 100644 --- a/src/org/kar/archidata/dataAccess/QueryCondition.java +++ b/src/org/kar/archidata/dataAccess/QueryCondition.java @@ -14,7 +14,7 @@ public class QueryCondition implements QueryItem { } @Override - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (tableName != null) { query.append(tableName); query.append("."); @@ -26,7 +26,7 @@ public class QueryCondition implements QueryItem { } @Override - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { DataAccess.addElement(ps, this.value, iii); iii.inc(); } diff --git a/src/org/kar/archidata/dataAccess/QueryInList.java b/src/org/kar/archidata/dataAccess/QueryInList.java index c7cdcaa..bfacf9f 100644 --- a/src/org/kar/archidata/dataAccess/QueryInList.java +++ b/src/org/kar/archidata/dataAccess/QueryInList.java @@ -23,7 +23,7 @@ public class QueryInList implements QueryItem { } @Override - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (tableName != null) { query.append(tableName); query.append("."); @@ -44,7 +44,7 @@ public class QueryInList implements QueryItem { } @Override - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { for (final Object elem : this.value) { DataAccess.addElement(ps, elem, iii); iii.inc(); diff --git a/src/org/kar/archidata/dataAccess/QueryItem.java b/src/org/kar/archidata/dataAccess/QueryItem.java index 64c043a..20498b7 100644 --- a/src/org/kar/archidata/dataAccess/QueryItem.java +++ b/src/org/kar/archidata/dataAccess/QueryItem.java @@ -3,7 +3,7 @@ package org.kar.archidata.dataAccess; import java.sql.PreparedStatement; public interface QueryItem { - void generateQuerry(StringBuilder query, String tableName); + void generateQuery(StringBuilder query, String tableName); - void injectQuerry(PreparedStatement ps, CountInOut iii) throws Exception; + void injectQuery(PreparedStatement ps, CountInOut iii) throws Exception; } diff --git a/src/org/kar/archidata/dataAccess/QueryNotNull.java b/src/org/kar/archidata/dataAccess/QueryNotNull.java index bf735c1..3bcef4e 100644 --- a/src/org/kar/archidata/dataAccess/QueryNotNull.java +++ b/src/org/kar/archidata/dataAccess/QueryNotNull.java @@ -10,7 +10,7 @@ public class QueryNotNull implements QueryItem { } @Override - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (tableName != null) { query.append(tableName); query.append("."); @@ -20,5 +20,5 @@ public class QueryNotNull implements QueryItem { } @Override - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception {} + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception {} } diff --git a/src/org/kar/archidata/dataAccess/QueryNull.java b/src/org/kar/archidata/dataAccess/QueryNull.java index 4570bce..dfc70d4 100644 --- a/src/org/kar/archidata/dataAccess/QueryNull.java +++ b/src/org/kar/archidata/dataAccess/QueryNull.java @@ -10,7 +10,7 @@ public class QueryNull implements QueryItem { } @Override - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (tableName != null) { query.append(tableName); query.append("."); @@ -20,5 +20,5 @@ public class QueryNull implements QueryItem { } @Override - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception {} + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception {} } diff --git a/src/org/kar/archidata/dataAccess/QueryOr.java b/src/org/kar/archidata/dataAccess/QueryOr.java index aa826fc..18e28aa 100644 --- a/src/org/kar/archidata/dataAccess/QueryOr.java +++ b/src/org/kar/archidata/dataAccess/QueryOr.java @@ -15,7 +15,7 @@ public class QueryOr implements QueryItem { } @Override - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (this.childs.size() >= 1) { query.append(" ("); } @@ -26,7 +26,7 @@ public class QueryOr implements QueryItem { } else { query.append(" OR "); } - elem.generateQuerry(query, tableName); + elem.generateQuery(query, tableName); } if (this.childs.size() >= 1) { query.append(")"); @@ -34,9 +34,9 @@ public class QueryOr implements QueryItem { } @Override - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { for (final QueryItem elem : this.childs) { - elem.injectQuerry(ps, iii); + elem.injectQuery(ps, iii); } } } diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java b/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java index afbda00..ad21496 100644 --- a/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java +++ b/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java @@ -79,18 +79,26 @@ public class AddOnDataJson implements DataAccessAddOn { } @Override - public void generateQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry, @NotNull final String name, - @NotNull final CountInOut elemCount, final QueryOptions options) throws Exception { - querrySelect.append(" "); - querrySelect.append(tableName); - querrySelect.append("."); - querrySelect.append(name); - elemCount.inc(); + public void generateQuery(// + @NotNull final String tableName, // + @NotNull final String primaryKey, // + @NotNull final Field field, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // + @NotNull final String name, // + @NotNull final CountInOut count, // + final QueryOptions options// + ) throws Exception { + querySelect.append(" "); + querySelect.append(tableName); + querySelect.append("."); + querySelect.append(name); + count.inc(); return; } @Override - public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws Exception { + public void fillFromQuery(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws Exception { final String jsonData = rs.getString(count.value); count.inc(); if (!rs.wasNull()) { diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java index da8810b..edce660 100644 --- a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java +++ b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import org.apache.velocity.tools.generic.ResourceTool.Key; import org.kar.archidata.annotation.AnnotationTools; import org.kar.archidata.dataAccess.CountInOut; import org.kar.archidata.dataAccess.DataAccess; @@ -98,76 +97,79 @@ public class AddOnManyToMany implements DataAccessAddOn { return tableName + "_link_" + localName; } - public void generateConcatQuerry( // + public void generateConcatQuery(// @NotNull final String tableName, // + @NotNull final String primaryKey, // @NotNull final Field field, // - @NotNull final StringBuilder querrySelect, // - @NotNull final StringBuilder querry, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // @NotNull final String name, // - @NotNull final CountInOut elemCount, // + @NotNull final CountInOut count, // final QueryOptions options// ) throws Exception { final String linkTableName = generateLinkTableName(tableName, name); final Class objectClass = (Class) ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; - final String tmpVariable = "tmp_" + Integer.toString(elemCount.value); - querrySelect.append(" (SELECT GROUP_CONCAT("); - querrySelect.append(tmpVariable); - querrySelect.append(".object2Id "); + final String tmpVariable = "tmp_" + Integer.toString(count.value); + querySelect.append(" (SELECT GROUP_CONCAT("); + querySelect.append(tmpVariable); + querySelect.append(".object2Id "); if ("sqlite".equals(ConfigBaseVariable.getDBType())) { - querrySelect.append(", "); + querySelect.append(", "); } else { - querrySelect.append("SEPARATOR "); + querySelect.append("SEPARATOR "); } - querrySelect.append("'"); + querySelect.append("'"); if (objectClass == Long.class) { - querrySelect.append(SEPARATOR_LONG); + querySelect.append(SEPARATOR_LONG); } else if (objectClass == UUID.class) {} else { final Class foreignKeyType = AnnotationTools.getPrimaryKeyField(objectClass).getType(); if (foreignKeyType == Long.class) { - querrySelect.append(SEPARATOR_LONG); + querySelect.append(SEPARATOR_LONG); } } - querrySelect.append("') FROM "); - querrySelect.append(linkTableName); - querrySelect.append(" "); - querrySelect.append(tmpVariable); - querrySelect.append(" WHERE "); - /* querrySelect.append(tmpVariable); querrySelect.append(".deleted = false AND "); */ - querrySelect.append(tableName); - final la il faut final retouvrt la primary final Key de la final table courante ... - querrySelect.append(".id = "); - querrySelect.append(tmpVariable); - querrySelect.append("."); - querrySelect.append("object1Id "); + querySelect.append("') FROM "); + querySelect.append(linkTableName); + querySelect.append(" "); + querySelect.append(tmpVariable); + querySelect.append(" WHERE "); + /* querySelect.append(tmpVariable); querySelect.append(".deleted = false AND "); */ + querySelect.append(tableName); + querySelect.append("."); + querySelect.append(primaryKey); + querySelect.append(" = "); + querySelect.append(tmpVariable); + querySelect.append("."); + querySelect.append("object1Id "); if (!"sqlite".equals(ConfigBaseVariable.getDBType())) { - querrySelect.append(" GROUP BY "); - querrySelect.append(tmpVariable); - querrySelect.append(".object1Id"); + querySelect.append(" GROUP BY "); + querySelect.append(tmpVariable); + querySelect.append(".object1Id"); } - querrySelect.append(") AS "); - querrySelect.append(name); - querrySelect.append(" "); + querySelect.append(") AS "); + querySelect.append(name); + querySelect.append(" "); /* " (SELECT GROUP_CONCAT(tmp.data_id SEPARATOR '-')" + " FROM cover_link_node tmp" + " WHERE tmp.deleted = false" + * " AND node.id = tmp.node_id" + " GROUP BY tmp.node_id) AS covers" + */ - elemCount.inc(); + count.inc(); } @Override - public void generateQuerry( // + public void generateQuery(// @NotNull final String tableName, // + @NotNull final String primaryKey, // @NotNull final Field field, // - @NotNull final StringBuilder querrySelect, // - @NotNull final StringBuilder querry, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // @NotNull final String name, // - @NotNull final CountInOut elemCount, // - final QueryOptions options // + @NotNull final CountInOut count, // + final QueryOptions options// ) throws Exception { if (field.getType() != List.class) { return; } final Class objectClass = (Class) ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; if (objectClass == Long.class || objectClass == UUID.class) { - generateConcatQuerry(tableName, field, querrySelect, querry, name, elemCount, options); + generateConcatQuery(tableName, primaryKey, field, querySelect, query, name, count, options); } final ManyToMany decorators = field.getDeclaredAnnotation(ManyToMany.class); if (decorators == null) { @@ -177,13 +179,13 @@ public class AddOnManyToMany implements DataAccessAddOn { if (decorators.fetch() == FetchType.EAGER) { throw new DataAccessException("EAGER is not supported for list of element..."); } else { - generateConcatQuerry(tableName, field, querrySelect, querry, name, elemCount, options); + generateConcatQuery(tableName, primaryKey, field, querySelect, query, name, count, options); } } } @Override - public void fillFromQuerry( // + public void fillFromQuery( // final ResultSet rs, // final Field field, // final Object data, // diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java index c6697f6..0133a29 100644 --- a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java +++ b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java @@ -132,13 +132,14 @@ public class AddOnManyToOne implements DataAccessAddOn { } @Override - public void generateQuerry( // + public void generateQuery(// @NotNull final String tableName, // + @NotNull final String primaryKey, // @NotNull final Field field, // - @NotNull final StringBuilder querrySelect, // - @NotNull final StringBuilder querry, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // @NotNull final String name, // - @NotNull final CountInOut elemCount, // + @NotNull final CountInOut count, // final QueryOptions options// ) throws Exception { if (field.getType() == Long.class // @@ -146,37 +147,37 @@ public class AddOnManyToOne implements DataAccessAddOn { || field.getType() == Short.class // || field.getType() == String.class // || field.getType() == UUID.class) { - querrySelect.append(" "); - querrySelect.append(tableName); - querrySelect.append("."); - querrySelect.append(name); - elemCount.inc(); + querySelect.append(" "); + querySelect.append(tableName); + querySelect.append("."); + querySelect.append(name); + count.inc(); return; } final ManyToOne decorators = field.getDeclaredAnnotation(ManyToOne.class); if (field.getType() == decorators.targetEntity()) { if (decorators.fetch() == FetchType.EAGER) { // TODO: rework this to have a lazy mode ... - DataAccess.generateSelectField(querrySelect, querry, field.getType(), options, elemCount); + DataAccess.generateSelectField(querySelect, query, field.getType(), options, count); final Class subType = field.getType(); final String subTableName = AnnotationTools.getTableName(subType); final Field idField = AnnotationTools.getFieldOfId(subType); - querry.append("LEFT OUTER JOIN `"); - querry.append(subTableName); - querry.append("` ON "); - querry.append(subTableName); - querry.append("."); - querry.append(AnnotationTools.getFieldName(idField)); - querry.append(" = "); - querry.append(tableName); - querry.append("."); - querry.append(AnnotationTools.getFieldName(field)); + query.append("LEFT OUTER JOIN `"); + query.append(subTableName); + query.append("` ON "); + query.append(subTableName); + query.append("."); + query.append(AnnotationTools.getFieldName(idField)); + query.append(" = "); + query.append(tableName); + query.append("."); + query.append(AnnotationTools.getFieldName(field)); } else { - querrySelect.append(" "); - querrySelect.append(tableName); - querrySelect.append("."); - querrySelect.append(name); - elemCount.inc(); + querySelect.append(" "); + querySelect.append(tableName); + querySelect.append("."); + querySelect.append(name); + count.inc(); return; } } @@ -185,7 +186,7 @@ public class AddOnManyToOne implements DataAccessAddOn { } @Override - public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws Exception { + public void fillFromQuery(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws Exception { if (field.getType() == Long.class) { final Long foreignKey = rs.getLong(count.value); count.inc(); diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java b/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java index be8deae..7bbc86c 100644 --- a/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java +++ b/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java @@ -103,17 +103,25 @@ public class AddOnOneToMany implements DataAccessAddOn { } @Override - public void generateQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry, @NotNull final String name, - @NotNull final CountInOut elemCount, final QueryOptions options) { - querrySelect.append(" "); - querrySelect.append(tableName); - querrySelect.append("."); - querrySelect.append(name); - elemCount.inc(); + public void generateQuery(// + @NotNull final String tableName, // + @NotNull final String primaryKey, // + @NotNull final Field field, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // + @NotNull final String name, // + @NotNull final CountInOut count, // + final QueryOptions options// + ) { + querySelect.append(" "); + querySelect.append(tableName); + querySelect.append("."); + querySelect.append(name); + count.inc(); } @Override - public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) + public void fillFromQuery(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws SQLException, IllegalArgumentException, IllegalAccessException { final Long foreignKey = rs.getLong(count.value); count.inc(); diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java b/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java index 0485004..dc0405c 100644 --- a/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java +++ b/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java @@ -87,17 +87,25 @@ public class AddOnSQLTableExternalForeinKeyAsList implements DataAccessAddOn { } @Override - public void generateQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry, @NotNull final String name, - @NotNull final CountInOut elemCount, final QueryOptions options) { - elemCount.inc(); - querrySelect.append(" "); - querrySelect.append(tableName); - querrySelect.append("."); - querrySelect.append(name); + public void generateQuery(// + @NotNull final String tableName, // + @NotNull final String primaryKey, // + @NotNull final Field field, // + @NotNull final StringBuilder querySelect, // + @NotNull final StringBuilder query, // + @NotNull final String name, // + @NotNull final CountInOut count, // + final QueryOptions options// + ) { + count.inc(); + querySelect.append(" "); + querySelect.append(tableName); + querySelect.append("."); + querySelect.append(name); } @Override - public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) + public void fillFromQuery(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws SQLException, IllegalArgumentException, IllegalAccessException { final List idList = DataAccess.getListOfIds(rs, count.value, SEPARATOR); field.set(data, idList); diff --git a/src/org/kar/archidata/dataAccess/options/Condition.java b/src/org/kar/archidata/dataAccess/options/Condition.java index a652af6..fcd32d7 100644 --- a/src/org/kar/archidata/dataAccess/options/Condition.java +++ b/src/org/kar/archidata/dataAccess/options/Condition.java @@ -19,15 +19,15 @@ public class Condition extends QueryOption { this.condition = null; } - public void generateQuerry(final StringBuilder query, final String tableName) { + public void generateQuery(final StringBuilder query, final String tableName) { if (this.condition != null) { - this.condition.generateQuerry(query, tableName); + this.condition.generateQuery(query, tableName); } } - public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception { + public void injectQuery(final PreparedStatement ps, final CountInOut iii) throws Exception { if (this.condition != null) { - this.condition.injectQuerry(ps, iii); + this.condition.injectQuery(ps, iii); } } @@ -48,7 +48,7 @@ public class Condition extends QueryOption { return; } query.append(" WHERE ("); - this.condition.generateQuerry(query, tableName); + this.condition.generateQuery(query, tableName); query.append(") "); if (exclude_deleted && deletedFieldName != null) { query.append("AND "); diff --git a/src/org/kar/archidata/migration/MigrationEngine.java b/src/org/kar/archidata/migration/MigrationEngine.java index b8d0b05..e694832 100644 --- a/src/org/kar/archidata/migration/MigrationEngine.java +++ b/src/org/kar/archidata/migration/MigrationEngine.java @@ -166,7 +166,7 @@ public class MigrationEngine { } LOGGER.info("Create Table with : {}", sqlQuery.get(0)); try { - DataAccess.executeQuerry(sqlQuery.get(0)); + DataAccess.executeQuery(sqlQuery.get(0)); } catch (SQLException | IOException ex) { ex.printStackTrace(); throw new MigrationException("Fail to create the local DB model for migaration ==> wait administrator interventions"); diff --git a/src/org/kar/archidata/migration/MigrationSqlStep.java b/src/org/kar/archidata/migration/MigrationSqlStep.java index 8f890c6..60da0d9 100644 --- a/src/org/kar/archidata/migration/MigrationSqlStep.java +++ b/src/org/kar/archidata/migration/MigrationSqlStep.java @@ -98,7 +98,7 @@ public class MigrationSqlStep implements MigrationInterface { } try { if (action.action() != null) { - DataAccess.executeQuerry(action.action()); + DataAccess.executeQuery(action.action()); } else { action.async().doRequest(); } diff --git a/src/org/kar/archidata/tools/RESTApi.java b/src/org/kar/archidata/tools/RESTApi.java index 38ea41d..311effc 100644 --- a/src/org/kar/archidata/tools/RESTApi.java +++ b/src/org/kar/archidata/tools/RESTApi.java @@ -135,6 +135,7 @@ public class RESTApi { if (clazz.equals(String.class)) { return (T) httpResponse.body(); } + LOGGER.trace("Receive model: {} with data: '{}'", clazz.getCanonicalName(), httpResponse.body()); return this.mapper.readValue(httpResponse.body(), clazz); } diff --git a/test/src/test/kar/archidata/TestJson.java b/test/src/test/kar/archidata/TestJson.java index 5f5fe66..5781ef0 100644 --- a/test/src/test/kar/archidata/TestJson.java +++ b/test/src/test/kar/archidata/TestJson.java @@ -53,7 +53,7 @@ public class TestJson { final List sqlCommand = DataFactory.createTable(SerializeAsJson.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestListJson.java b/test/src/test/kar/archidata/TestListJson.java index 19ff3bc..d166a73 100644 --- a/test/src/test/kar/archidata/TestListJson.java +++ b/test/src/test/kar/archidata/TestListJson.java @@ -53,7 +53,7 @@ public class TestListJson { final List sqlCommand = DataFactory.createTable(SerializeListAsJson.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestManyToMany.java b/test/src/test/kar/archidata/TestManyToMany.java index 3dd3281..5daf8c2 100644 --- a/test/src/test/kar/archidata/TestManyToMany.java +++ b/test/src/test/kar/archidata/TestManyToMany.java @@ -57,7 +57,7 @@ public class TestManyToMany { sqlCommand.addAll(sqlCommand2); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestManyToOne.java b/test/src/test/kar/archidata/TestManyToOne.java index a14399d..db775f3 100644 --- a/test/src/test/kar/archidata/TestManyToOne.java +++ b/test/src/test/kar/archidata/TestManyToOne.java @@ -56,7 +56,7 @@ public class TestManyToOne { sqlCommand.addAll(sqlCommand2); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestOneToMany.java b/test/src/test/kar/archidata/TestOneToMany.java index ecf4cca..5e933a4 100644 --- a/test/src/test/kar/archidata/TestOneToMany.java +++ b/test/src/test/kar/archidata/TestOneToMany.java @@ -51,7 +51,7 @@ public class TestOneToMany { final List sqlCommand = DataFactory.createTable(TypesTable.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestRawQuery.java b/test/src/test/kar/archidata/TestRawQuery.java index 95c2341..994f28a 100644 --- a/test/src/test/kar/archidata/TestRawQuery.java +++ b/test/src/test/kar/archidata/TestRawQuery.java @@ -52,7 +52,7 @@ public class TestRawQuery { final List sqlCommand = DataFactory.createTable(TypesTable.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } @@ -83,7 +83,7 @@ public class TestRawQuery { test.floatData = 7.0F; DataAccess.insert(test); { - String querry = """ + String query = """ SELECT * FROM TypesTable WHERE `intData` = ? @@ -91,7 +91,7 @@ public class TestRawQuery { """; List parameters = List.of(Integer.valueOf(99)); // Try to retrieve all the data: - final List retrieve = DataAccess.query(TypesTable.class, querry, parameters); + final List retrieve = DataAccess.query(TypesTable.class, query, parameters); Assertions.assertNotNull(retrieve); Assertions.assertEquals(3, retrieve.size()); @@ -102,7 +102,7 @@ public class TestRawQuery { } { - String querry = """ + String query = """ SELECT DISTINCT intData FROM TypesTable WHERE `intData` = ? @@ -110,7 +110,7 @@ public class TestRawQuery { """; List parameters = List.of(Integer.valueOf(99)); // Try to retrieve all the data: - final List retrieve = DataAccess.query(TypesTable.class, querry, parameters); + final List retrieve = DataAccess.query(TypesTable.class, query, parameters); Assertions.assertNotNull(retrieve); Assertions.assertEquals(1, retrieve.size()); diff --git a/test/src/test/kar/archidata/TestSimpleTable.java b/test/src/test/kar/archidata/TestSimpleTable.java index 809aaf4..7646d57 100644 --- a/test/src/test/kar/archidata/TestSimpleTable.java +++ b/test/src/test/kar/archidata/TestSimpleTable.java @@ -65,7 +65,7 @@ public class TestSimpleTable { final List sqlCommand = DataFactory.createTable(SimpleTable.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } final SimpleTable test = new SimpleTable(); test.data = TestSimpleTable.DATA_INJECTED; diff --git a/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java b/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java index 43f269b..41a3c98 100644 --- a/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java +++ b/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java @@ -65,7 +65,7 @@ public class TestSimpleTableSoftDelete { final List sqlCommand = DataFactory.createTable(SimpleTableSoftDelete.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } final SimpleTableSoftDelete test = new SimpleTableSoftDelete(); test.data = TestSimpleTableSoftDelete.DATA_INJECTED; diff --git a/test/src/test/kar/archidata/TestTypeEnum1.java b/test/src/test/kar/archidata/TestTypeEnum1.java index 5c733b7..2803d11 100644 --- a/test/src/test/kar/archidata/TestTypeEnum1.java +++ b/test/src/test/kar/archidata/TestTypeEnum1.java @@ -53,7 +53,7 @@ public class TestTypeEnum1 { final List sqlCommand = DataFactory.createTable(TypesEnum1.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestTypeEnum2.java b/test/src/test/kar/archidata/TestTypeEnum2.java index 840c537..fe7ba85 100644 --- a/test/src/test/kar/archidata/TestTypeEnum2.java +++ b/test/src/test/kar/archidata/TestTypeEnum2.java @@ -53,7 +53,7 @@ public class TestTypeEnum2 { final List sqlCommand = DataFactory.createTable(TypesEnum2.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } } diff --git a/test/src/test/kar/archidata/TestTypes.java b/test/src/test/kar/archidata/TestTypes.java index e4dff1c..2c3cfef 100644 --- a/test/src/test/kar/archidata/TestTypes.java +++ b/test/src/test/kar/archidata/TestTypes.java @@ -57,7 +57,7 @@ public class TestTypes { final List sqlCommand = DataFactory.createTable(TypesTable.class); for (final String elem : sqlCommand) { LOGGER.debug("request: '{}'", elem); - DataAccess.executeSimpleQuerry(elem); + DataAccess.executeSimpleQuery(elem); } }