JDBCConfigurazioneTransazioneServiceImpl.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.monitor.engine.config.transazioni.dao.jdbc;

  21. import java.sql.Connection;

  22. import org.openspcoop2.utils.sql.ISQLQueryObject;

  23. import org.slf4j.Logger;

  24. import org.openspcoop2.core.plugins.constants.TipoPlugin;
  25. import org.openspcoop2.core.plugins.dao.jdbc.JDBCConfigurazioneServizioAzioneBaseLib;
  26. import org.openspcoop2.core.plugins.dao.jdbc.JDBCPluginsBaseLib;

  27. import org.openspcoop2.generic_project.dao.jdbc.IJDBCServiceCRUDWithId;
  28. import org.openspcoop2.monitor.engine.config.transazioni.IdConfigurazioneTransazione;
  29. import org.openspcoop2.generic_project.beans.NonNegativeNumber;
  30. import org.openspcoop2.generic_project.beans.UpdateField;
  31. import org.openspcoop2.generic_project.beans.UpdateModel;

  32. import org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities;
  33. import org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject;
  34. import org.openspcoop2.generic_project.exception.NotFoundException;
  35. import org.openspcoop2.generic_project.exception.NotImplementedException;
  36. import org.openspcoop2.generic_project.exception.ServiceException;
  37. import org.openspcoop2.generic_project.expression.IExpression;
  38. import org.openspcoop2.generic_project.dao.jdbc.JDBCExpression;
  39. import org.openspcoop2.generic_project.dao.jdbc.JDBCPaginatedExpression;

  40. import org.openspcoop2.generic_project.dao.jdbc.JDBCServiceManagerProperties;

  41. import org.openspcoop2.monitor.engine.config.transazioni.ConfigurazioneTransazione;
  42. import org.openspcoop2.monitor.engine.config.transazioni.ConfigurazioneTransazionePlugin;
  43. import org.openspcoop2.monitor.engine.config.transazioni.ConfigurazioneTransazioneStato;
  44. import org.openspcoop2.monitor.engine.config.transazioni.ConfigurazioneTransazioneRisorsaContenuto;

  45. /**    
  46.  * JDBCConfigurazioneTransazioneServiceImpl
  47.  *
  48.  * @author Poli Andrea (poli@link.it)
  49.  * @author $Author$
  50.  * @version $Rev$, $Date$
  51.  */
  52. public class JDBCConfigurazioneTransazioneServiceImpl extends JDBCConfigurazioneTransazioneServiceSearchImpl
  53.     implements IJDBCServiceCRUDWithId<ConfigurazioneTransazione, IdConfigurazioneTransazione, JDBCServiceManager> {

  54.     @Override
  55.     public void create(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, ConfigurazioneTransazione configurazioneTransazione, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {

  56.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  57.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  58.        
  59.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  60.                

  61.         // Object _configurazioneServizioAzione
  62.         if(configurazioneTransazione.getIdConfigurazioneServizioAzione()==null){
  63.             throw new ServiceException("IdConfigurazioneServizioAzione is null");
  64.         }
  65.         if(configurazioneTransazione.getIdConfigurazioneServizioAzione().getAzione()==null){
  66.             throw new ServiceException("IdConfigurazioneServizioAzione.azione is null");
  67.         }
  68.         if(configurazioneTransazione.getIdConfigurazioneServizioAzione().getIdConfigurazioneServizio()==null){
  69.             throw new ServiceException("IdConfigurazioneServizioAzione.idConfigurazioneServizio is null");
  70.         }



  71.         // Object _configurazioneServizioAzione
  72.         Long id_configurazioneServizioAzione =
  73.                 JDBCConfigurazioneServizioAzioneBaseLib.getIdConfigurazioneServizioAzione(connection, jdbcProperties, log,
  74.                         configurazioneTransazione.getIdConfigurazioneServizioAzione().getAzione(),
  75.                         configurazioneTransazione.getIdConfigurazioneServizioAzione().getIdConfigurazioneServizio().getAccordo(),
  76.                         configurazioneTransazione.getIdConfigurazioneServizioAzione().getIdConfigurazioneServizio().getTipoSoggettoReferente(),
  77.                         configurazioneTransazione.getIdConfigurazioneServizioAzione().getIdConfigurazioneServizio().getNomeSoggettoReferente(),
  78.                         configurazioneTransazione.getIdConfigurazioneServizioAzione().getIdConfigurazioneServizio().getVersione(),
  79.                         configurazioneTransazione.getIdConfigurazioneServizioAzione().getIdConfigurazioneServizio().getServizio(),
  80.                         true);


  81.         // Object configurazioneTransazione
  82.         sqlQueryObjectInsert.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()));
  83.         sqlQueryObjectInsert.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().ENABLED,false),"?");
  84.         sqlQueryObjectInsert.addInsertField("id_conf_servizio_azione","?");

  85.         // Insert configurazioneTransazione
  86.         org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model());
  87.         long id = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert, keyGenerator, jdbcProperties.isShowSql(),
  88.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getEnabled(),ConfigurazioneTransazione.model().ENABLED.getFieldType()),
  89.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id_configurazioneServizioAzione,Long.class)
  90.         );
  91.         configurazioneTransazione.setId(id);

  92.         // for configurazioneTransazione
  93.         for (int i = 0; i < configurazioneTransazione.getConfigurazioneTransazionePluginList().size(); i++) {

  94.             ConfigurazioneTransazionePlugin configTransazionePlugin = configurazioneTransazione.getConfigurazioneTransazionePlugin(i);
  95.            
  96.             // Object _plugin
  97.             if(configTransazionePlugin.getPlugin()==null || configTransazionePlugin.getPlugin().getClassName()==null){
  98.                 throw new ServiceException("ClassName del plugin non fornito");
  99.             }
  100.             Long id_configurazioneTransazionePlugin_plugin = JDBCPluginsBaseLib.getIdPlugin(connection, jdbcProperties, log, TipoPlugin.TRANSAZIONE, configTransazionePlugin.getPlugin().getClassName(), true);

  101.             // Object configurazioneTransazione.getConfigurazioneTransazionePluginList().get(i)
  102.             ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazionePlugin = sqlQueryObjectInsert.newSQLQueryObject();
  103.             sqlQueryObjectInsert_configurazioneTransazionePlugin.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN));
  104.             sqlQueryObjectInsert_configurazioneTransazionePlugin.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ID_CONFIGURAZIONE_TRANSAZIONE_PLUGIN,false),"?");
  105.             sqlQueryObjectInsert_configurazioneTransazionePlugin.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ENABLED,false),"?");
  106.             sqlQueryObjectInsert_configurazioneTransazionePlugin.addInsertField("id_plugin","?");
  107.             sqlQueryObjectInsert_configurazioneTransazionePlugin.addInsertField("id_configurazione_transazione","?");

  108.             // Insert configurazioneTransazione.getConfigurazioneTransazionePluginList().get(i)
  109.             org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_configurazioneTransazionePlugin = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN);
  110.             long id_configurazioneTransazionePlugin = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_configurazioneTransazionePlugin, keyGenerator_configurazioneTransazionePlugin, jdbcProperties.isShowSql(),
  111.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazionePluginList().get(i).getIdConfigurazioneTransazionePlugin(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ID_CONFIGURAZIONE_TRANSAZIONE_PLUGIN.getFieldType()),
  112.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazionePluginList().get(i).getEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ENABLED.getFieldType()),
  113.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id_configurazioneTransazionePlugin_plugin,Long.class),
  114.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  115.             );
  116.             configurazioneTransazione.getConfigurazioneTransazionePluginList().get(i).setId(id_configurazioneTransazionePlugin);
  117.         } // fine for

  118.         // for configurazioneTransazione
  119.         for (int i = 0; i < configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().size(); i++) {

  120.             // Object _configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato
  121.             ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = sqlQueryObjectInsert.newSQLQueryObject();
  122.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addFromTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  123.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addSelectField("id");
  124.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.setANDLogicOperator(true);
  125.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addWhereCondition(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME,true)+"=?");
  126.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addWhereCondition("id_configurazione_transazione=?");

  127.             // Recupero _configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato
  128.             org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject [] searchParams_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject [] {
  129.                     new JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getIdConfigurazioneTransazioneStato().getStato(), String.class),
  130.                     new JDBCObject(configurazioneTransazione.getId(),Long.class)
  131.             };
  132.             Long id_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = null;
  133.             try{
  134.                 id_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = (Long) jdbcUtilities.executeQuerySingleResult(sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.createSQLQuery(), jdbcProperties.isShowSql(),
  135.                         Long.class, searchParams_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato);
  136.             }catch(NotFoundException e){
  137.                 // risorsa con stato == null o '*'
  138.                 id_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = null;
  139.             }

  140.             // Object configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i)
  141.             ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto = sqlQueryObjectInsert.newSQLQueryObject();
  142.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO));
  143.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_ANONIMIZZAZIONE,false),"?");
  144.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_COMPRESSIONE,false),"?");
  145.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_COMPRESSIONE,false),"?");
  146.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.CARATTERE_MASCHERA,false),"?");
  147.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NUMERO_CARATTERI_MASCHERA,false),"?");
  148.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.POSIZIONAMENTO_MASCHERA,false),"?");
  149.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MASCHERAMENTO,false),"?");
  150.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ENABLED,false),"?");
  151.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NOME,false),"?");
  152.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MESSAGGIO,false),"?");
  153.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.XPATH,false),"?");
  154.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.STAT_ENABLED,false),"?");
  155. //          if(id_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato != null)
  156.                 sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField("id_configurazione_stato","?");
  157.             sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto.addInsertField("id_conf_transazione","?");

  158.             // Insert configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i)
  159.             org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_configurazioneTransazioneRisorsaContenuto = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO);
  160.             long id_configurazioneTransazioneRisorsaContenuto = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto, keyGenerator_configurazioneTransazioneRisorsaContenuto, jdbcProperties.isShowSql(),
  161.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getAbilitaAnonimizzazione(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_ANONIMIZZAZIONE.getFieldType()),
  162.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getAbilitaCompressione(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_COMPRESSIONE.getFieldType()),
  163.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getTipoCompressione(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_COMPRESSIONE.getFieldType()),
  164.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getCarattereMaschera(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.CARATTERE_MASCHERA.getFieldType()),
  165.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getNumeroCaratteriMaschera(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NUMERO_CARATTERI_MASCHERA.getFieldType()),
  166.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getPosizionamentoMaschera(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.POSIZIONAMENTO_MASCHERA.getFieldType()),
  167.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getTipoMascheramento(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MASCHERAMENTO.getFieldType()),
  168.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ENABLED.getFieldType()),
  169.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getNome(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NOME.getFieldType()),
  170.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getTipoMessaggio(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MESSAGGIO.getFieldType()),
  171.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getXpath(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.XPATH.getFieldType()),
  172.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).getStatEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.STAT_ENABLED.getFieldType()),
  173.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato,Long.class),
  174.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  175.             );
  176.             configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList().get(i).setId(id_configurazioneTransazioneRisorsaContenuto);
  177.         } // fine for

  178.         // for configurazioneTransazione
  179.         for (int i = 0; i < configurazioneTransazione.getConfigurazioneTransazioneStatoList().size(); i++) {


  180.             // Object configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i)
  181.             ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazioneStato = sqlQueryObjectInsert.newSQLQueryObject();
  182.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  183.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.ENABLED,false),"?");
  184.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME,false),"?");
  185.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_CONTROLLO,false),"?");
  186.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_MESSAGGIO,false),"?");
  187.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.VALORE,false),"?");
  188.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.XPATH,false),"?");
  189.             sqlQueryObjectInsert_configurazioneTransazioneStato.addInsertField("id_configurazione_transazione","?");

  190.             // Insert configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i)
  191.             org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_configurazioneTransazioneStato = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO);
  192.             long id_configurazioneTransazioneStato = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_configurazioneTransazioneStato, keyGenerator_configurazioneTransazioneStato, jdbcProperties.isShowSql(),
  193.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).getEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.ENABLED.getFieldType()),
  194.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).getNome(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME.getFieldType()),
  195.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).getTipoControllo(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_CONTROLLO.getFieldType()),
  196.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).getTipoMessaggio(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_MESSAGGIO.getFieldType()),
  197.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).getValore(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.VALORE.getFieldType()),
  198.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).getXpath(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.XPATH.getFieldType()),
  199.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  200.             );
  201.             configurazioneTransazione.getConfigurazioneTransazioneStatoList().get(i).setId(id_configurazioneTransazioneStato);
  202.         } // fine for


  203.     }

  204.     @Override
  205.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdConfigurazioneTransazione oldId, ConfigurazioneTransazione configurazioneTransazione, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  206.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObject.newSQLQueryObject();
  207.         Long longIdByLogicId = this.findIdConfigurazioneTransazione(jdbcProperties, log, connection, sqlQueryObjectUpdate.newSQLQueryObject(), oldId, true);
  208.         Long tableId = configurazioneTransazione.getId();
  209.         if(tableId != null && tableId.longValue() > 0) {
  210.             if(tableId.longValue() != longIdByLogicId.longValue()) {
  211.                 throw new Exception("Ambiguous parameter: configurazioneTransazione.id ["+tableId+"] does not match logic id ["+longIdByLogicId+"]");
  212.             }
  213.         } else {
  214.             tableId = longIdByLogicId;
  215.             configurazioneTransazione.setId(tableId);
  216.         }
  217.         if(tableId==null || tableId<=0){
  218.             throw new Exception("Retrieve tableId failed");
  219.         }

  220.         this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, configurazioneTransazione, idMappingResolutionBehaviour);
  221.     }
  222.     @Override
  223.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, ConfigurazioneTransazione configurazioneTransazione, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  224.    
  225.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  226.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  227.        
  228.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  229.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObjectInsert.newSQLQueryObject();
  230.         ISQLQueryObject sqlQueryObjectGet = sqlQueryObjectDelete.newSQLQueryObject();
  231.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObjectGet.newSQLQueryObject();
  232.        
  233.         @SuppressWarnings("unused")
  234.         boolean setIdMappingResolutionBehaviour =
  235.             (idMappingResolutionBehaviour==null) ||
  236.             org.openspcoop2.generic_project.beans.IDMappingBehaviour.ENABLED.equals(idMappingResolutionBehaviour) ||
  237.             org.openspcoop2.generic_project.beans.IDMappingBehaviour.USE_TABLE_ID.equals(idMappingResolutionBehaviour);
  238.            

  239.         // Object _configurazioneTransazione_configurazioneServizioAzione
  240.         Long id_configurazioneTransazione_configurazioneServizioAzione = null;
  241.         org.openspcoop2.monitor.engine.config.transazioni.IdConfigurazioneServizioAzione idLogic_configurazioneTransazione_configurazioneServizioAzione = null;
  242.         idLogic_configurazioneTransazione_configurazioneServizioAzione = configurazioneTransazione.getIdConfigurazioneServizioAzione();
  243.         if(idLogic_configurazioneTransazione_configurazioneServizioAzione!=null){
  244.             if(idMappingResolutionBehaviour==null ||
  245.                 (org.openspcoop2.generic_project.beans.IDMappingBehaviour.ENABLED.equals(idMappingResolutionBehaviour))){
  246.                 id_configurazioneTransazione_configurazioneServizioAzione =
  247.                         JDBCConfigurazioneServizioAzioneBaseLib.getIdConfigurazioneServizioAzione(connection, jdbcProperties, log,
  248.                                 idLogic_configurazioneTransazione_configurazioneServizioAzione.getAzione(),
  249.                                 idLogic_configurazioneTransazione_configurazioneServizioAzione.getIdConfigurazioneServizio().getAccordo(),
  250.                                 idLogic_configurazioneTransazione_configurazioneServizioAzione.getIdConfigurazioneServizio().getTipoSoggettoReferente(),
  251.                                 idLogic_configurazioneTransazione_configurazioneServizioAzione.getIdConfigurazioneServizio().getNomeSoggettoReferente(),
  252.                                 idLogic_configurazioneTransazione_configurazioneServizioAzione.getIdConfigurazioneServizio().getVersione(),
  253.                                 idLogic_configurazioneTransazione_configurazioneServizioAzione.getIdConfigurazioneServizio().getServizio(),
  254.                                 true);
  255.             }
  256.             else if(org.openspcoop2.generic_project.beans.IDMappingBehaviour.USE_TABLE_ID.equals(idMappingResolutionBehaviour)){
  257.                 id_configurazioneTransazione_configurazioneServizioAzione = idLogic_configurazioneTransazione_configurazioneServizioAzione.getId();
  258.                 if(id_configurazioneTransazione_configurazioneServizioAzione==null || id_configurazioneTransazione_configurazioneServizioAzione<=0){
  259.                     throw new Exception("Logic id not contains table id");
  260.                 }
  261.             }
  262.         }


  263.         // Object configurazioneTransazione
  264.         sqlQueryObjectUpdate.setANDLogicOperator(true);
  265.         sqlQueryObjectUpdate.addUpdateTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()));
  266.         boolean isUpdate_configurazioneTransazione = true;
  267.         java.util.List<JDBCObject> lstObjects_configurazioneTransazione = new java.util.ArrayList<>();
  268.         sqlQueryObjectUpdate.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().ENABLED,false), "?");
  269.         lstObjects_configurazioneTransazione.add(new JDBCObject(configurazioneTransazione.getEnabled(), ConfigurazioneTransazione.model().ENABLED.getFieldType()));
  270.         sqlQueryObjectUpdate.addWhereCondition("id=?");
  271.         lstObjects_configurazioneTransazione.add(new JDBCObject(tableId, Long.class));

  272.         if(isUpdate_configurazioneTransazione) {
  273.             // Update configurazioneTransazione
  274.             jdbcUtilities.executeUpdate(sqlQueryObjectUpdate.createSQLUpdate(), jdbcProperties.isShowSql(),
  275.                 lstObjects_configurazioneTransazione.toArray(new JDBCObject[]{}));
  276.         }
  277.         // for configurazioneTransazione_configurazioneTransazionePlugin

  278.         java.util.List<Long> ids_configurazioneTransazione_configurazioneTransazionePlugin_da_non_eliminare = new java.util.ArrayList<Long>();
  279.         for (Object configurazioneTransazione_configurazioneTransazionePlugin_object : configurazioneTransazione.getConfigurazioneTransazionePluginList()) {
  280.             ConfigurazioneTransazionePlugin configurazioneTransazione_configurazioneTransazionePlugin = (ConfigurazioneTransazionePlugin) configurazioneTransazione_configurazioneTransazionePlugin_object;
  281.            
  282.             // Object _plugin
  283.             if(configurazioneTransazione_configurazioneTransazionePlugin.getPlugin()==null || configurazioneTransazione_configurazioneTransazionePlugin.getPlugin().getClassName()==null){
  284.                 throw new ServiceException("ClassName del plugin non fornito");
  285.             }
  286.             Long id_configurazioneTransazione_configurazioneTransazionePlugin_plugin = JDBCPluginsBaseLib.getIdPlugin(connection, jdbcProperties, log, TipoPlugin.TRANSAZIONE, configurazioneTransazione_configurazioneTransazionePlugin.getPlugin().getClassName(), true);
  287.            
  288.             if(configurazioneTransazione_configurazioneTransazionePlugin.getId() == null || configurazioneTransazione_configurazioneTransazionePlugin.getId().longValue() <= 0) {

  289.                 long id = configurazioneTransazione.getId();        
  290.                
  291.                 // Object configurazioneTransazione_configurazioneTransazionePlugin
  292.                 ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin = sqlQueryObjectInsert.newSQLQueryObject();
  293.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN));
  294.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ID_CONFIGURAZIONE_TRANSAZIONE_PLUGIN,false),"?");
  295.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ENABLED,false),"?");
  296.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin.addInsertField("id_plugin","?");
  297.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin.addInsertField("id_configurazione_transazione","?");

  298.                 // Insert configurazioneTransazione_configurazioneTransazionePlugin
  299.                 org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_configurazioneTransazione_configurazioneTransazionePlugin = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN);
  300.                 long id_configurazioneTransazione_configurazioneTransazionePlugin = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazionePlugin, keyGenerator_configurazioneTransazione_configurazioneTransazionePlugin, jdbcProperties.isShowSql(),
  301.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazionePlugin.getIdConfigurazioneTransazionePlugin(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ID_CONFIGURAZIONE_TRANSAZIONE_PLUGIN.getFieldType()),
  302.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazionePlugin.getEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ENABLED.getFieldType()),
  303.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id_configurazioneTransazione_configurazioneTransazionePlugin_plugin,Long.class),
  304.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  305.                 );
  306.                 configurazioneTransazione_configurazioneTransazionePlugin.setId(id_configurazioneTransazione_configurazioneTransazionePlugin);

  307.                 ids_configurazioneTransazione_configurazioneTransazionePlugin_da_non_eliminare.add(configurazioneTransazione_configurazioneTransazionePlugin.getId());
  308.             } else {

  309.                 // Object configurazioneTransazione_configurazioneTransazionePlugin
  310.                 ISQLQueryObject sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin = sqlQueryObjectUpdate.newSQLQueryObject();
  311.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.setANDLogicOperator(true);
  312.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.addUpdateTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN));
  313.                 boolean isUpdate_configurazioneTransazione_configurazioneTransazionePlugin = true;
  314.                 java.util.List<JDBCObject> lstObjects_configurazioneTransazione_configurazioneTransazionePlugin = new java.util.ArrayList<>();
  315.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ID_CONFIGURAZIONE_TRANSAZIONE_PLUGIN,false), "?");
  316.                 lstObjects_configurazioneTransazione_configurazioneTransazionePlugin.add(new JDBCObject(configurazioneTransazione_configurazioneTransazionePlugin.getIdConfigurazioneTransazionePlugin(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ID_CONFIGURAZIONE_TRANSAZIONE_PLUGIN.getFieldType()));
  317.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ENABLED,false), "?");
  318.                 lstObjects_configurazioneTransazione_configurazioneTransazionePlugin.add(new JDBCObject(configurazioneTransazione_configurazioneTransazionePlugin.getEnabled(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN.ENABLED.getFieldType()));
  319.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.addUpdateField("id_plugin", "?");
  320.                 lstObjects_configurazioneTransazione_configurazioneTransazionePlugin.add(new JDBCObject(id_configurazioneTransazione_configurazioneTransazionePlugin_plugin, Long.class));
  321.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.addWhereCondition("id=?");
  322.                 ids_configurazioneTransazione_configurazioneTransazionePlugin_da_non_eliminare.add(configurazioneTransazione_configurazioneTransazionePlugin.getId());
  323.                 lstObjects_configurazioneTransazione_configurazioneTransazionePlugin.add(new JDBCObject(configurazioneTransazione_configurazioneTransazionePlugin.getId(),Long.class));

  324.                 if(isUpdate_configurazioneTransazione_configurazioneTransazionePlugin) {
  325.                     // Update configurazioneTransazione_configurazioneTransazionePlugin
  326.                     jdbcUtilities.executeUpdate(sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazionePlugin.createSQLUpdate(), jdbcProperties.isShowSql(),
  327.                         lstObjects_configurazioneTransazione_configurazioneTransazionePlugin.toArray(new JDBCObject[]{}));
  328.                 }
  329.             }
  330.         } // fine for configurazioneTransazione_configurazioneTransazionePlugin

  331.         // elimino tutte le occorrenze di configurazioneTransazione_configurazioneTransazionePlugin non presenti nell'update

  332.         ISQLQueryObject sqlQueryObjectUpdate_configurazioneTransazionePlugindeleteEngineList = sqlQueryObjectUpdate.newSQLQueryObject();
  333.         sqlQueryObjectUpdate_configurazioneTransazionePlugindeleteEngineList.setANDLogicOperator(true);
  334.         sqlQueryObjectUpdate_configurazioneTransazionePlugindeleteEngineList.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN));
  335.         java.util.List<JDBCObject> jdbcObjects_configurazioneTransazione_configurazioneTransazionePlugindeleteEngine = new java.util.ArrayList<>();

  336.         sqlQueryObjectUpdate_configurazioneTransazionePlugindeleteEngineList.addWhereCondition("id_configurazione_transazione=?");
  337.         jdbcObjects_configurazioneTransazione_configurazioneTransazionePlugindeleteEngine.add(new JDBCObject(configurazioneTransazione.getId(), Long.class));

  338.         StringBuilder marks_configurazioneTransazione_configurazioneTransazionePlugin = new StringBuilder();
  339.         if(ids_configurazioneTransazione_configurazioneTransazionePlugin_da_non_eliminare.size() > 0) {
  340.             for(Long ids : ids_configurazioneTransazione_configurazioneTransazionePlugin_da_non_eliminare) {
  341.                 if(marks_configurazioneTransazione_configurazioneTransazionePlugin.length() > 0) {
  342.                     marks_configurazioneTransazione_configurazioneTransazionePlugin.append(",");
  343.                 }
  344.                 marks_configurazioneTransazione_configurazioneTransazionePlugin.append("?");
  345.                 jdbcObjects_configurazioneTransazione_configurazioneTransazionePlugindeleteEngine.add(new JDBCObject(ids, Long.class));

  346.             }
  347.             sqlQueryObjectUpdate_configurazioneTransazionePlugindeleteEngineList.addWhereCondition("id NOT IN ("+marks_configurazioneTransazione_configurazioneTransazionePlugin.toString()+")");
  348.         }

  349.         jdbcUtilities.execute(sqlQueryObjectUpdate_configurazioneTransazionePlugindeleteEngineList.createSQLDelete(), jdbcProperties.isShowSql(), jdbcObjects_configurazioneTransazione_configurazioneTransazionePlugindeleteEngine.toArray(new JDBCObject[]{}));

  350.         // for configurazioneTransazione_configurazioneTransazioneStato

  351.         java.util.List<Long> ids_configurazioneTransazione_configurazioneTransazioneStato_da_non_eliminare = new java.util.ArrayList<Long>();
  352.         for (Object configurazioneTransazione_configurazioneTransazioneStato_object : configurazioneTransazione.getConfigurazioneTransazioneStatoList()) {
  353.             ConfigurazioneTransazioneStato configurazioneTransazione_configurazioneTransazioneStato = (ConfigurazioneTransazioneStato) configurazioneTransazione_configurazioneTransazioneStato_object;
  354.             if(configurazioneTransazione_configurazioneTransazioneStato.getId() == null || configurazioneTransazione_configurazioneTransazioneStato.getId().longValue() <= 0) {

  355.                 long id = configurazioneTransazione.getId();            

  356.                 // Object configurazioneTransazione_configurazioneTransazioneStato
  357.                 ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato = sqlQueryObjectInsert.newSQLQueryObject();
  358.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  359.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.ENABLED,false),"?");
  360.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME,false),"?");
  361.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_CONTROLLO,false),"?");
  362.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_MESSAGGIO,false),"?");
  363.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.VALORE,false),"?");
  364.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.XPATH,false),"?");
  365.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato.addInsertField("id_configurazione_transazione","?");

  366.                 // Insert configurazioneTransazione_configurazioneTransazioneStato
  367.                 org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_configurazioneTransazione_configurazioneTransazioneStato = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO);
  368.                 long id_configurazioneTransazione_configurazioneTransazioneStato = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneStato, keyGenerator_configurazioneTransazione_configurazioneTransazioneStato, jdbcProperties.isShowSql(),
  369.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.ENABLED.getFieldType()),
  370.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getNome(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME.getFieldType()),
  371.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getTipoControllo(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_CONTROLLO.getFieldType()),
  372.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getTipoMessaggio(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_MESSAGGIO.getFieldType()),
  373.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getValore(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.VALORE.getFieldType()),
  374.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getXpath(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.XPATH.getFieldType()),
  375.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  376.                 );
  377.                 configurazioneTransazione_configurazioneTransazioneStato.setId(id_configurazioneTransazione_configurazioneTransazioneStato);

  378.                 ids_configurazioneTransazione_configurazioneTransazioneStato_da_non_eliminare.add(configurazioneTransazione_configurazioneTransazioneStato.getId());
  379.             } else {


  380.                 // Object configurazioneTransazione_configurazioneTransazioneStato
  381.                 ISQLQueryObject sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato = sqlQueryObjectUpdate.newSQLQueryObject();
  382.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.setANDLogicOperator(true);
  383.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  384.                 boolean isUpdate_configurazioneTransazione_configurazioneTransazioneStato = true;
  385.                 java.util.List<JDBCObject> lstObjects_configurazioneTransazione_configurazioneTransazioneStato = new java.util.ArrayList<>();
  386.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.ENABLED,false), "?");
  387.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getEnabled(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.ENABLED.getFieldType()));
  388.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME,false), "?");
  389.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getNome(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME.getFieldType()));
  390.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_CONTROLLO,false), "?");
  391.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getTipoControllo(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_CONTROLLO.getFieldType()));
  392.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_MESSAGGIO,false), "?");
  393.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getTipoMessaggio(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.TIPO_MESSAGGIO.getFieldType()));
  394.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.VALORE,false), "?");
  395.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getValore(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.VALORE.getFieldType()));
  396.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.XPATH,false), "?");
  397.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getXpath(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.XPATH.getFieldType()));
  398.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.addWhereCondition("id=?");
  399.                 ids_configurazioneTransazione_configurazioneTransazioneStato_da_non_eliminare.add(configurazioneTransazione_configurazioneTransazioneStato.getId());
  400.                 lstObjects_configurazioneTransazione_configurazioneTransazioneStato.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getId(),Long.class));

  401.                 if(isUpdate_configurazioneTransazione_configurazioneTransazioneStato) {
  402.                     // Update configurazioneTransazione_configurazioneTransazioneStato
  403.                     jdbcUtilities.executeUpdate(sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneStato.createSQLUpdate(), jdbcProperties.isShowSql(),
  404.                         lstObjects_configurazioneTransazione_configurazioneTransazioneStato.toArray(new JDBCObject[]{}));
  405.                 }
  406.             }
  407.         } // fine for configurazioneTransazione_configurazioneTransazioneStato

  408.         // elimino tutte le occorrenze di configurazioneTransazione_configurazioneTransazioneStato non presenti nell'update

  409.         ISQLQueryObject sqlQueryObjectUpdate_configurazioneTransazioneStatodeleteEngineList = sqlQueryObjectUpdate.newSQLQueryObject();
  410.         sqlQueryObjectUpdate_configurazioneTransazioneStatodeleteEngineList.setANDLogicOperator(true);
  411.         sqlQueryObjectUpdate_configurazioneTransazioneStatodeleteEngineList.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  412.         java.util.List<JDBCObject> jdbcObjects_configurazioneTransazione_configurazioneTransazioneStatodeleteEngine = new java.util.ArrayList<>();

  413.         sqlQueryObjectUpdate_configurazioneTransazioneStatodeleteEngineList.addWhereCondition("id_configurazione_transazione=?");
  414.         jdbcObjects_configurazioneTransazione_configurazioneTransazioneStatodeleteEngine.add(new JDBCObject(configurazioneTransazione.getId(), Long.class));

  415.         StringBuilder marks_configurazioneTransazione_configurazioneTransazioneStato = new StringBuilder();
  416.         if(ids_configurazioneTransazione_configurazioneTransazioneStato_da_non_eliminare.size() > 0) {
  417.             for(Long ids : ids_configurazioneTransazione_configurazioneTransazioneStato_da_non_eliminare) {
  418.                 if(marks_configurazioneTransazione_configurazioneTransazioneStato.length() > 0) {
  419.                     marks_configurazioneTransazione_configurazioneTransazioneStato.append(",");
  420.                 }
  421.                 marks_configurazioneTransazione_configurazioneTransazioneStato.append("?");
  422.                 jdbcObjects_configurazioneTransazione_configurazioneTransazioneStatodeleteEngine.add(new JDBCObject(ids, Long.class));

  423.             }
  424.             sqlQueryObjectUpdate_configurazioneTransazioneStatodeleteEngineList.addWhereCondition("id NOT IN ("+marks_configurazioneTransazione_configurazioneTransazioneStato.toString()+")");
  425.         }

  426.         jdbcUtilities.execute(sqlQueryObjectUpdate_configurazioneTransazioneStatodeleteEngineList.createSQLDelete(), jdbcProperties.isShowSql(), jdbcObjects_configurazioneTransazione_configurazioneTransazioneStatodeleteEngine.toArray(new JDBCObject[]{}));

  427.         // for configurazioneTransazione_configurazioneTransazioneRisorsaContenuto

  428.         java.util.List<Long> ids_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_da_non_eliminare = new java.util.ArrayList<Long>();
  429.         for (Object configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_object : configurazioneTransazione.getConfigurazioneTransazioneRisorsaContenutoList()) {
  430.             ConfigurazioneTransazioneRisorsaContenuto configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = (ConfigurazioneTransazioneRisorsaContenuto) configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_object;
  431.             if(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getId() == null || configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getId().longValue() <= 0) {

  432.                 long id = configurazioneTransazione.getId();    

  433.                 // Object _configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato
  434.                 ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = sqlQueryObjectInsert.newSQLQueryObject();
  435.                 sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addFromTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  436.                 sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addSelectField("id");
  437.                 sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.setANDLogicOperator(true);
  438.                 sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addWhereCondition(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME,true)+"=?");
  439.                 sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addWhereCondition("id_configurazione_transazione=?");

  440.                 // Recupero _configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato
  441.                 org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject [] searchParams_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject [] {
  442.                         new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getIdConfigurazioneTransazioneStato().getStato(), String.class),
  443.                         new JDBCObject(configurazioneTransazione.getId(),Long.class)
  444.                 };
  445.                 Long id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = null;
  446.                 try{    
  447.                     id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato=  (Long) jdbcUtilities.executeQuerySingleResult(sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.createSQLQuery(), jdbcProperties.isShowSql(),
  448.                                 Long.class, searchParams_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato);
  449.                 }catch(NotFoundException e){
  450.                     // risorsa con stato == null o '*'
  451.                     id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = null;
  452.                 }


  453.                 // Object configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  454.                 ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = sqlQueryObjectInsert.newSQLQueryObject();
  455.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO));
  456.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_ANONIMIZZAZIONE,false),"?");
  457.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_COMPRESSIONE,false),"?");
  458.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_COMPRESSIONE,false),"?");
  459.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.CARATTERE_MASCHERA,false),"?");
  460.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NUMERO_CARATTERI_MASCHERA,false),"?");
  461.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.POSIZIONAMENTO_MASCHERA,false),"?");
  462.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MASCHERAMENTO,false),"?");
  463.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ENABLED,false),"?");
  464.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NOME,false),"?");
  465.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MESSAGGIO,false),"?");
  466.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.XPATH,false),"?");
  467.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.STAT_ENABLED,false),"?");
  468.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField("id_configurazione_stato","?");
  469.                 sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addInsertField("id_conf_transazione","?");

  470.                 // Insert configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  471.                 org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = this.getConfigurazioneTransazioneFetch().getKeyGeneratorObject(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO);
  472.                 long id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto, keyGenerator_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto, jdbcProperties.isShowSql(),
  473.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getAbilitaAnonimizzazione(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_ANONIMIZZAZIONE.getFieldType()),
  474.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getAbilitaCompressione(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_COMPRESSIONE.getFieldType()),
  475.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getTipoCompressione(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_COMPRESSIONE.getFieldType()),
  476.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getCarattereMaschera(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.CARATTERE_MASCHERA.getFieldType()),
  477.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getNumeroCaratteriMaschera(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NUMERO_CARATTERI_MASCHERA.getFieldType()),
  478.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getPosizionamentoMaschera(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.POSIZIONAMENTO_MASCHERA.getFieldType()),
  479.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getTipoMascheramento(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MASCHERAMENTO.getFieldType()),
  480.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ENABLED.getFieldType()),
  481.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getNome(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NOME.getFieldType()),
  482.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getTipoMessaggio(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MESSAGGIO.getFieldType()),
  483.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getXpath(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.XPATH.getFieldType()),
  484.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getStatEnabled(),ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.STAT_ENABLED.getFieldType()),
  485.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato,Long.class),
  486.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  487.                 );
  488.                 configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.setId(id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto);

  489.                 ids_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_da_non_eliminare.add(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getId());
  490.             } else {

  491.                 // Object _configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato
  492.                 Long id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = null;
  493.                 if(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getIdConfigurazioneTransazioneStato()!=null){
  494.                     ISQLQueryObject sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = sqlQueryObjectInsert.newSQLQueryObject();
  495.                     sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addFromTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  496.                     sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addSelectField("id");
  497.                     sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.setANDLogicOperator(true);
  498.                     sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addWhereCondition(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO.NOME,true)+"=?");
  499.                     sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.addWhereCondition("id_configurazione_transazione=?");
  500.    
  501.                     // Recupero _configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato
  502.                     org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject [] searchParams_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject [] {
  503.                             new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getIdConfigurazioneTransazioneStato().getStato(), String.class),
  504.                             new JDBCObject(configurazioneTransazione.getId(),Long.class)
  505.                     };
  506.                     try{    
  507.                         id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato=  (Long) jdbcUtilities.executeQuerySingleResult(sqlQueryObjectInsert_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato.createSQLQuery(), jdbcProperties.isShowSql(),
  508.                                     Long.class, searchParams_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato);
  509.                     }catch(NotFoundException e){
  510.                         // risorsa con stato == null o '*'
  511.                         id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato = null;
  512.                     }
  513.                 }
  514.                
  515.                 // Object configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  516.                 ISQLQueryObject sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = sqlQueryObjectUpdate.newSQLQueryObject();
  517.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.setANDLogicOperator(true);
  518.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO));
  519.                 boolean isUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = true;
  520.                 java.util.List<JDBCObject> lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = new java.util.ArrayList<>();
  521.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_ANONIMIZZAZIONE,false), "?");
  522.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getAbilitaAnonimizzazione(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_ANONIMIZZAZIONE.getFieldType()));
  523.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_COMPRESSIONE,false), "?");
  524.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getAbilitaCompressione(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ABILITA_COMPRESSIONE.getFieldType()));
  525.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_COMPRESSIONE,false), "?");
  526.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getTipoCompressione(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_COMPRESSIONE.getFieldType()));
  527.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.CARATTERE_MASCHERA,false), "?");
  528.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getCarattereMaschera(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.CARATTERE_MASCHERA.getFieldType()));
  529.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NUMERO_CARATTERI_MASCHERA,false), "?");
  530.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getNumeroCaratteriMaschera(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NUMERO_CARATTERI_MASCHERA.getFieldType()));
  531.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.POSIZIONAMENTO_MASCHERA,false), "?");
  532.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getPosizionamentoMaschera(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.POSIZIONAMENTO_MASCHERA.getFieldType()));
  533.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MASCHERAMENTO,false), "?");
  534.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getTipoMascheramento(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MASCHERAMENTO.getFieldType()));
  535.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ENABLED,false), "?");
  536.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getEnabled(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.ENABLED.getFieldType()));
  537.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NOME,false), "?");
  538.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getNome(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.NOME.getFieldType()));
  539.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MESSAGGIO,false), "?");
  540.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getTipoMessaggio(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.TIPO_MESSAGGIO.getFieldType()));
  541.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.XPATH,false), "?");
  542.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getXpath(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.XPATH.getFieldType()));
  543.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField(this.getConfigurazioneTransazioneFieldConverter().toColumn(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.STAT_ENABLED,false), "?");
  544.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getStatEnabled(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO.STAT_ENABLED.getFieldType()));
  545.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addUpdateField("id_configurazione_stato","?");
  546.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(id_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_configurazioneTransazioneStato,Long.class));
  547.                
  548.                 sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addWhereCondition("id=?");
  549.                 ids_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_da_non_eliminare.add(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getId());
  550.                 lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.add(new JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getId(),Long.class));

  551.                 if(isUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto) {
  552.                     // Update configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  553.                     jdbcUtilities.executeUpdate(sqlQueryObjectUpdate_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.createSQLUpdate(), jdbcProperties.isShowSql(),
  554.                         lstObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.toArray(new JDBCObject[]{}));
  555.                 }
  556.             }
  557.         } // fine for configurazioneTransazione_configurazioneTransazioneRisorsaContenuto

  558.         // elimino tutte le occorrenze di configurazioneTransazione_configurazioneTransazioneRisorsaContenuto non presenti nell'update

  559.         ISQLQueryObject sqlQueryObjectUpdate_configurazioneTransazioneRisorsaContenutodeleteEngineList = sqlQueryObjectUpdate.newSQLQueryObject();
  560.         sqlQueryObjectUpdate_configurazioneTransazioneRisorsaContenutodeleteEngineList.setANDLogicOperator(true);
  561.         sqlQueryObjectUpdate_configurazioneTransazioneRisorsaContenutodeleteEngineList.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO));
  562.         java.util.List<JDBCObject> jdbcObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenutodeleteEngine = new java.util.ArrayList<>();

  563.         sqlQueryObjectUpdate_configurazioneTransazioneRisorsaContenutodeleteEngineList.addWhereCondition("id_conf_transazione=?");
  564.         jdbcObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenutodeleteEngine.add(new JDBCObject(configurazioneTransazione.getId(), Long.class));

  565.         StringBuilder marks_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = new StringBuilder();
  566.         if(ids_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_da_non_eliminare.size() > 0) {
  567.             for(Long ids : ids_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_da_non_eliminare) {
  568.                 if(marks_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.length() > 0) {
  569.                     marks_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.append(",");
  570.                 }
  571.                 marks_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.append("?");
  572.                 jdbcObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenutodeleteEngine.add(new JDBCObject(ids, Long.class));

  573.             }
  574.             sqlQueryObjectUpdate_configurazioneTransazioneRisorsaContenutodeleteEngineList.addWhereCondition("id NOT IN ("+marks_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.toString()+")");
  575.         }

  576.         jdbcUtilities.execute(sqlQueryObjectUpdate_configurazioneTransazioneRisorsaContenutodeleteEngineList.createSQLDelete(), jdbcProperties.isShowSql(), jdbcObjects_configurazioneTransazione_configurazioneTransazioneRisorsaContenutodeleteEngine.toArray(new JDBCObject[]{}));


  577.     }
  578.    
  579.     @Override
  580.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdConfigurazioneTransazione id, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  581.        
  582.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  583.                 this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()),
  584.                 this.getMapTableToPKColumnEngine(),
  585.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  586.                 this.getConfigurazioneTransazioneFieldConverter(), this, null, updateFields);
  587.     }
  588.    
  589.     @Override
  590.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdConfigurazioneTransazione id, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  591.        
  592.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  593.                 this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()),
  594.                 this.getMapTableToPKColumnEngine(),
  595.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  596.                 this.getConfigurazioneTransazioneFieldConverter(), this, condition, updateFields);
  597.     }
  598.    
  599.     @Override
  600.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdConfigurazioneTransazione id, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  601.        
  602.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  603.                 this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()),
  604.                 this.getMapTableToPKColumnEngine(),
  605.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  606.                 this.getConfigurazioneTransazioneFieldConverter(), this, updateModels);
  607.     }  
  608.    
  609.     @Override
  610.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  611.         java.util.List<Object> ids = new java.util.ArrayList<>();
  612.         ids.add(tableId);
  613.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  614.                 this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()),
  615.                 this.getMapTableToPKColumnEngine(),
  616.                 ids,
  617.                 this.getConfigurazioneTransazioneFieldConverter(), this, null, updateFields);
  618.     }
  619.    
  620.     @Override
  621.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  622.         java.util.List<Object> ids = new java.util.ArrayList<>();
  623.         ids.add(tableId);
  624.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  625.                 this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()),
  626.                 this.getMapTableToPKColumnEngine(),
  627.                 ids,
  628.                 this.getConfigurazioneTransazioneFieldConverter(), this, condition, updateFields);
  629.     }
  630.    
  631.     @Override
  632.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  633.         java.util.List<Object> ids = new java.util.ArrayList<>();
  634.         ids.add(tableId);
  635.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  636.                 this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()),
  637.                 this.getMapTableToPKColumnEngine(),
  638.                 ids,
  639.                 this.getConfigurazioneTransazioneFieldConverter(), this, updateModels);
  640.     }
  641.    
  642.     @Override
  643.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdConfigurazioneTransazione oldId, ConfigurazioneTransazione configurazioneTransazione, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  644.    
  645.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, oldId)) {
  646.             this.update(jdbcProperties, log, connection, sqlQueryObject, oldId, configurazioneTransazione,idMappingResolutionBehaviour);
  647.         } else {
  648.             this.create(jdbcProperties, log, connection, sqlQueryObject, configurazioneTransazione,idMappingResolutionBehaviour);
  649.         }
  650.        
  651.     }
  652.    
  653.     @Override
  654.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, ConfigurazioneTransazione configurazioneTransazione, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  655.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, tableId)) {
  656.             this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, configurazioneTransazione,idMappingResolutionBehaviour);
  657.         } else {
  658.             this.create(jdbcProperties, log, connection, sqlQueryObject, configurazioneTransazione,idMappingResolutionBehaviour);
  659.         }
  660.     }
  661.    
  662.     @Override
  663.     public void delete(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, ConfigurazioneTransazione configurazioneTransazione) throws NotImplementedException,ServiceException,Exception {
  664.        
  665.        
  666.         Long longId = null;
  667.         if( (configurazioneTransazione.getId()!=null) && (configurazioneTransazione.getId()>0) ){
  668.             longId = configurazioneTransazione.getId();
  669.         }
  670.         else{
  671.             IdConfigurazioneTransazione idConfigurazioneTransazione = this.convertToId(jdbcProperties,log,connection,sqlQueryObject,configurazioneTransazione);
  672.             longId = this.findIdConfigurazioneTransazione(jdbcProperties,log,connection,sqlQueryObject,idConfigurazioneTransazione,false);
  673.             if(longId == null){
  674.                 return; // entry not exists
  675.             }
  676.         }      
  677.        
  678.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, longId);
  679.        
  680.     }

  681.     private void deleteEngine(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, Long id) throws NotImplementedException,ServiceException,Exception {
  682.    
  683.         if(id==null){
  684.             throw new ServiceException("Id is null");
  685.         }
  686.         if(id!=null && id.longValue()<=0){
  687.             throw new ServiceException("Id is less equals 0");
  688.         }
  689.        
  690.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  691.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  692.        
  693.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObject.newSQLQueryObject();
  694.        

  695.         //Recupero oggetto _configurazioneTransazione_configurazioneTransazionePlugin
  696.         ISQLQueryObject sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugingetEngineToDelete = sqlQueryObjectDelete.newSQLQueryObject();
  697.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugingetEngineToDelete.setANDLogicOperator(true);
  698.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugingetEngineToDelete.addFromTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN));
  699.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugingetEngineToDelete.addWhereCondition("id_configurazione_transazione=?");
  700.         java.util.List<Object> configurazioneTransazione_configurazioneTransazionePlugin_toDelete_list = jdbcUtilities.executeQuery(sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugingetEngineToDelete.createSQLQuery(), jdbcProperties.isShowSql(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN, this.getConfigurazioneTransazioneFetch(),
  701.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id,Long.class));

  702.         // for configurazioneTransazione_configurazioneTransazionePlugin
  703.         for (Object configurazioneTransazione_configurazioneTransazionePlugin_object : configurazioneTransazione_configurazioneTransazionePlugin_toDelete_list) {
  704.             ConfigurazioneTransazionePlugin configurazioneTransazione_configurazioneTransazionePlugin = (ConfigurazioneTransazionePlugin) configurazioneTransazione_configurazioneTransazionePlugin_object;

  705.             // Object configurazioneTransazione_configurazioneTransazionePlugin
  706.             ISQLQueryObject sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugin = sqlQueryObjectDelete.newSQLQueryObject();
  707.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugin.setANDLogicOperator(true);
  708.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugin.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_PLUGIN));
  709.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugin.addWhereCondition("id=?");

  710.             // Delete configurazioneTransazione_configurazioneTransazionePlugin
  711.             if(configurazioneTransazione_configurazioneTransazionePlugin != null){
  712.                 jdbcUtilities.execute(sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazionePlugin.createSQLDelete(), jdbcProperties.isShowSql(),
  713.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazionePlugin.getId(),Long.class));
  714.             }
  715.         } // fine for configurazioneTransazione_configurazioneTransazionePlugin

  716.         //Recupero oggetto _configurazioneTransazione_configurazioneTransazioneStato
  717.         ISQLQueryObject sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStatogetEngineToDelete = sqlQueryObjectDelete.newSQLQueryObject();
  718.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStatogetEngineToDelete.setANDLogicOperator(true);
  719.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStatogetEngineToDelete.addFromTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  720.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStatogetEngineToDelete.addWhereCondition("id_configurazione_transazione=?");
  721.         java.util.List<Object> configurazioneTransazione_configurazioneTransazioneStato_toDelete_list = jdbcUtilities.executeQuery(sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStatogetEngineToDelete.createSQLQuery(), jdbcProperties.isShowSql(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO, this.getConfigurazioneTransazioneFetch(),
  722.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id,Long.class));

  723.         // for configurazioneTransazione_configurazioneTransazioneStato
  724.         for (Object configurazioneTransazione_configurazioneTransazioneStato_object : configurazioneTransazione_configurazioneTransazioneStato_toDelete_list) {
  725.             ConfigurazioneTransazioneStato configurazioneTransazione_configurazioneTransazioneStato = (ConfigurazioneTransazioneStato) configurazioneTransazione_configurazioneTransazioneStato_object;

  726.             // Object configurazioneTransazione_configurazioneTransazioneStato
  727.             ISQLQueryObject sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStato = sqlQueryObjectDelete.newSQLQueryObject();
  728.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStato.setANDLogicOperator(true);
  729.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStato.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_STATO));
  730.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStato.addWhereCondition("id=?");

  731.             // Delete configurazioneTransazione_configurazioneTransazioneStato
  732.             if(configurazioneTransazione_configurazioneTransazioneStato != null){
  733.                 jdbcUtilities.execute(sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneStato.createSQLDelete(), jdbcProperties.isShowSql(),
  734.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneStato.getId(),Long.class));
  735.             }
  736.         } // fine for configurazioneTransazione_configurazioneTransazioneStato

  737.         //Recupero oggetto _configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  738.         ISQLQueryObject sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenutogetEngineToDelete = sqlQueryObjectDelete.newSQLQueryObject();
  739.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenutogetEngineToDelete.setANDLogicOperator(true);
  740.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenutogetEngineToDelete.addFromTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO));
  741.         sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenutogetEngineToDelete.addWhereCondition("id_conf_transazione=?");
  742.         java.util.List<Object> configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_toDelete_list = jdbcUtilities.executeQuery(sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenutogetEngineToDelete.createSQLQuery(), jdbcProperties.isShowSql(), ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO, this.getConfigurazioneTransazioneFetch(),
  743.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id,Long.class));

  744.         // for configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  745.         for (Object configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_object : configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_toDelete_list) {
  746.             ConfigurazioneTransazioneRisorsaContenuto configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = (ConfigurazioneTransazioneRisorsaContenuto) configurazioneTransazione_configurazioneTransazioneRisorsaContenuto_object;

  747.             // Object configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  748.             ISQLQueryObject sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto = sqlQueryObjectDelete.newSQLQueryObject();
  749.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.setANDLogicOperator(true);
  750.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model().CONFIGURAZIONE_TRANSAZIONE_RISORSA_CONTENUTO));
  751.             sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.addWhereCondition("id=?");

  752.             // Delete configurazioneTransazione_configurazioneTransazioneRisorsaContenuto
  753.             if(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto != null){
  754.                 jdbcUtilities.execute(sqlQueryObjectDelete_configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.createSQLDelete(), jdbcProperties.isShowSql(),
  755.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(configurazioneTransazione_configurazioneTransazioneRisorsaContenuto.getId(),Long.class));
  756.             }
  757.         } // fine for configurazioneTransazione_configurazioneTransazioneRisorsaContenuto

  758.         // Object configurazioneTransazione
  759.         sqlQueryObjectDelete.setANDLogicOperator(true);
  760.         sqlQueryObjectDelete.addDeleteTable(this.getConfigurazioneTransazioneFieldConverter().toTable(ConfigurazioneTransazione.model()));
  761.         if(id != null)
  762.             sqlQueryObjectDelete.addWhereCondition("id=?");

  763.         // Delete configurazioneTransazione
  764.         jdbcUtilities.execute(sqlQueryObjectDelete.createSQLDelete(), jdbcProperties.isShowSql(),
  765.             new JDBCObject(id,Long.class));

  766.     }

  767.     @Override
  768.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdConfigurazioneTransazione idConfigurazioneTransazione) throws NotImplementedException,ServiceException,Exception {

  769.         Long id = null;
  770.         try{
  771.             id = this.findIdConfigurazioneTransazione(jdbcProperties, log, connection, sqlQueryObject, idConfigurazioneTransazione, true);
  772.         }catch(NotFoundException notFound){
  773.             return;
  774.         }
  775.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  776.        
  777.     }
  778.    
  779.     @Override
  780.     public NonNegativeNumber deleteAll(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject) throws NotImplementedException,ServiceException,Exception {
  781.        
  782.         return this.deleteAll(jdbcProperties, log, connection, sqlQueryObject, new JDBCExpression(this.getConfigurazioneTransazioneFieldConverter()));

  783.     }

  784.     @Override
  785.     public NonNegativeNumber deleteAll(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, JDBCExpression expression) throws NotImplementedException, ServiceException,Exception {

  786.         java.util.List<Long> lst = this.findAllTableIds(jdbcProperties, log, connection, sqlQueryObject, new JDBCPaginatedExpression(expression));
  787.        
  788.         for(Long id : lst) {
  789.             this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  790.         }
  791.        
  792.         return new NonNegativeNumber(lst.size());
  793.    
  794.     }



  795.     // -- DB
  796.    
  797.     @Override
  798.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId) throws ServiceException, NotImplementedException, Exception {
  799.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, Long.valueOf(tableId));
  800.     }
  801.    
  802.     @Override
  803.     public int nativeUpdate(JDBCServiceManagerProperties jdbcProperties, Logger log,Connection connection,ISQLQueryObject sqlObject, String sql,Object ... param) throws ServiceException,NotImplementedException, Exception {
  804.    
  805.         return org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities.nativeUpdate(jdbcProperties, log, connection, sqlObject,
  806.                                                                                             sql,param);
  807.    
  808.     }
  809. }