JDBCTransazioneApplicativoServerServiceImpl.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.core.transazioni.dao.jdbc;

  21. import java.sql.Connection;

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

  24. import org.slf4j.Logger;

  25. import org.openspcoop2.generic_project.dao.jdbc.IJDBCServiceCRUDWithId;
  26. import org.openspcoop2.core.transazioni.IdTransazioneApplicativoServer;
  27. import org.openspcoop2.generic_project.beans.NonNegativeNumber;
  28. import org.openspcoop2.generic_project.beans.UpdateField;
  29. import org.openspcoop2.generic_project.beans.UpdateModel;

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

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

  39. import org.openspcoop2.core.transazioni.TransazioneApplicativoServer;

  40. /**    
  41.  * JDBCTransazioneApplicativoServerServiceImpl
  42.  *
  43.  * @author Poli Andrea (poli@link.it)
  44.  * @author $Author$
  45.  * @version $Rev$, $Date$
  46.  */
  47. public class JDBCTransazioneApplicativoServerServiceImpl extends JDBCTransazioneApplicativoServerServiceSearchImpl
  48.     implements IJDBCServiceCRUDWithId<TransazioneApplicativoServer, IdTransazioneApplicativoServer, JDBCServiceManager> {

  49.     @Override
  50.     public void create(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, TransazioneApplicativoServer transazioneApplicativoServer, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {

  51.         if(TipiDatabase.POSTGRESQL.equals(jdbcProperties.getDatabase())){
  52.             if(transazioneApplicativoServer.getFault()!=null && org.openspcoop2.utils.jdbc.PostgreSQLUtilities.containsNullByteSequence(transazioneApplicativoServer.getFault())) {
  53.                 transazioneApplicativoServer.setFault(org.openspcoop2.utils.jdbc.PostgreSQLUtilities.normalizeString(transazioneApplicativoServer.getFault()));
  54.             }
  55.         }
  56.            
  57.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  58.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  59.        
  60.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  61.                


  62.         // Object transazioneApplicativoServer
  63.         sqlQueryObjectInsert.addInsertTable(this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()));
  64.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().ID_TRANSAZIONE,false),"?");
  65.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().SERVIZIO_APPLICATIVO_EROGATORE,false),"?");
  66.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONNETTORE_NOME,false),"?");
  67.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_REGISTRAZIONE,false),"?");
  68.         // NONSERIALIZZATO SU DB sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().PROTOCOLLO,false),"?");
  69.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONSEGNA_TERMINATA,false),"?");
  70.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_MESSAGGIO_SCADUTO,false),"?");
  71.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DETTAGLIO_ESITO,false),"?");
  72.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONSEGNA_TRASPARENTE,false),"?");
  73.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONSEGNA_INTEGRATION_MANAGER,false),"?");
  74.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().IDENTIFICATIVO_MESSAGGIO,false),"?");
  75.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RICHIESTA,false),"?");
  76.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA,false),"?");
  77.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA_STREAM,false),"?");
  78.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RISPOSTA,false),"?");
  79.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA,false),"?");
  80.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA_STREAM,false),"?");
  81.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().RICHIESTA_USCITA_BYTES,false),"?");
  82.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().RISPOSTA_INGRESSO_BYTES,false),"?");
  83.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().LOCATION_CONNETTORE,false),"?");
  84.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CODICE_RISPOSTA,false),"?");
  85.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FAULT,false),"?");
  86.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FORMATO_FAULT,false),"?");
  87.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_PRIMO_TENTATIVO,false),"?");
  88.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().NUMERO_TENTATIVI,false),"?");
  89.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_PRESA_IN_CARICO,false),"?");
  90.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_CONSEGNA,false),"?");
  91.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ULTIMO_ERRORE,false),"?");
  92.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DETTAGLIO_ESITO_ULTIMO_ERRORE,false),"?");
  93.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CODICE_RISPOSTA_ULTIMO_ERRORE,false),"?");
  94.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().ULTIMO_ERRORE,false),"?");
  95.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().LOCATION_ULTIMO_ERRORE,false),"?");
  96.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_ULTIMO_ERRORE,false),"?");
  97.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FAULT_ULTIMO_ERRORE,false),"?");
  98.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FORMATO_FAULT_ULTIMO_ERRORE,false),"?");
  99.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_PRIMO_PRELIEVO_IM,false),"?");
  100.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_PRELIEVO_IM,false),"?");
  101.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().NUMERO_PRELIEVI_IM,false),"?");
  102.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ELIMINAZIONE_IM,false),"?");
  103.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_PRELIEVO_IM,false),"?");
  104.         sqlQueryObjectInsert.addInsertField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_ELIMINAZIONE_IM,false),"?");

  105.         // Insert transazioneApplicativoServer
  106.         org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator = this.getTransazioneApplicativoServerFetch().getKeyGeneratorObject(TransazioneApplicativoServer.model());
  107.         long id = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert, keyGenerator, jdbcProperties.isShowSql(),
  108.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getIdTransazione(),TransazioneApplicativoServer.model().ID_TRANSAZIONE.getFieldType()),
  109.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getServizioApplicativoErogatore(),TransazioneApplicativoServer.model().SERVIZIO_APPLICATIVO_EROGATORE.getFieldType()),
  110.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getConnettoreNome(),TransazioneApplicativoServer.model().CONNETTORE_NOME.getFieldType()),
  111.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataRegistrazione(),TransazioneApplicativoServer.model().DATA_REGISTRAZIONE.getFieldType()),
  112.             // NONSERIALIZZATO SU DB new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getProtocollo(),TransazioneApplicativoServer.model().PROTOCOLLO.getFieldType()),
  113.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getConsegnaTerminata(),TransazioneApplicativoServer.model().CONSEGNA_TERMINATA.getFieldType()),
  114.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataMessaggioScaduto(),TransazioneApplicativoServer.model().DATA_MESSAGGIO_SCADUTO.getFieldType()),
  115.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDettaglioEsito(),TransazioneApplicativoServer.model().DETTAGLIO_ESITO.getFieldType()),
  116.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getConsegnaTrasparente(),TransazioneApplicativoServer.model().CONSEGNA_TRASPARENTE.getFieldType()),
  117.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getConsegnaIntegrationManager(),TransazioneApplicativoServer.model().CONSEGNA_INTEGRATION_MANAGER.getFieldType()),
  118.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getIdentificativoMessaggio(),TransazioneApplicativoServer.model().IDENTIFICATIVO_MESSAGGIO.getFieldType()),
  119.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataAccettazioneRichiesta(),TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RICHIESTA.getFieldType()),
  120.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataUscitaRichiesta(),TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA.getFieldType()),
  121.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataUscitaRichiestaStream(),TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA_STREAM.getFieldType()),
  122.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataAccettazioneRisposta(),TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RISPOSTA.getFieldType()),
  123.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataIngressoRisposta(),TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA.getFieldType()),
  124.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataIngressoRispostaStream(),TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA_STREAM.getFieldType()),
  125.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getRichiestaUscitaBytes(),TransazioneApplicativoServer.model().RICHIESTA_USCITA_BYTES.getFieldType()),
  126.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getRispostaIngressoBytes(),TransazioneApplicativoServer.model().RISPOSTA_INGRESSO_BYTES.getFieldType()),
  127.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getLocationConnettore(),TransazioneApplicativoServer.model().LOCATION_CONNETTORE.getFieldType()),
  128.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getCodiceRisposta(),TransazioneApplicativoServer.model().CODICE_RISPOSTA.getFieldType()),
  129.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getFault(),TransazioneApplicativoServer.model().FAULT.getFieldType()),
  130.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getFormatoFault(),TransazioneApplicativoServer.model().FORMATO_FAULT.getFieldType()),
  131.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataPrimoTentativo(),TransazioneApplicativoServer.model().DATA_PRIMO_TENTATIVO.getFieldType()),
  132.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getNumeroTentativi(),TransazioneApplicativoServer.model().NUMERO_TENTATIVI.getFieldType()),
  133.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getClusterIdPresaInCarico(),TransazioneApplicativoServer.model().CLUSTER_ID_PRESA_IN_CARICO.getFieldType()),
  134.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getClusterIdConsegna(),TransazioneApplicativoServer.model().CLUSTER_ID_CONSEGNA.getFieldType()),
  135.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataUltimoErrore(),TransazioneApplicativoServer.model().DATA_ULTIMO_ERRORE.getFieldType()),
  136.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDettaglioEsitoUltimoErrore(),TransazioneApplicativoServer.model().DETTAGLIO_ESITO_ULTIMO_ERRORE.getFieldType()),
  137.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getCodiceRispostaUltimoErrore(),TransazioneApplicativoServer.model().CODICE_RISPOSTA_ULTIMO_ERRORE.getFieldType()),
  138.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getUltimoErrore(),TransazioneApplicativoServer.model().ULTIMO_ERRORE.getFieldType()),
  139.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getLocationUltimoErrore(),TransazioneApplicativoServer.model().LOCATION_ULTIMO_ERRORE.getFieldType()),
  140.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getClusterIdUltimoErrore(),TransazioneApplicativoServer.model().CLUSTER_ID_ULTIMO_ERRORE.getFieldType()),
  141.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getFaultUltimoErrore(),TransazioneApplicativoServer.model().FAULT_ULTIMO_ERRORE.getFieldType()),
  142.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getFormatoFaultUltimoErrore(),TransazioneApplicativoServer.model().FORMATO_FAULT_ULTIMO_ERRORE.getFieldType()),
  143.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataPrimoPrelievoIm(),TransazioneApplicativoServer.model().DATA_PRIMO_PRELIEVO_IM.getFieldType()),
  144.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataPrelievoIm(),TransazioneApplicativoServer.model().DATA_PRELIEVO_IM.getFieldType()),
  145.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getNumeroPrelieviIm(),TransazioneApplicativoServer.model().NUMERO_PRELIEVI_IM.getFieldType()),
  146.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getDataEliminazioneIm(),TransazioneApplicativoServer.model().DATA_ELIMINAZIONE_IM.getFieldType()),
  147.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getClusterIdPrelievoIm(),TransazioneApplicativoServer.model().CLUSTER_ID_PRELIEVO_IM.getFieldType()),
  148.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(transazioneApplicativoServer.getClusterIdEliminazioneIm(),TransazioneApplicativoServer.model().CLUSTER_ID_ELIMINAZIONE_IM.getFieldType())
  149.         );
  150.         transazioneApplicativoServer.setId(id);

  151.        
  152.     }

  153.     private static boolean efficiente = true;
  154.     public static boolean isEfficiente() {
  155.         return efficiente;
  156.     }
  157.     public static void setEfficiente(boolean efficiente) {
  158.         JDBCTransazioneApplicativoServerServiceImpl.efficiente = efficiente;
  159.     }
  160.     @Override
  161.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdTransazioneApplicativoServer oldId, TransazioneApplicativoServer transazioneApplicativoServer, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  162.        
  163.         if(efficiente) {
  164.        
  165.             long tableId = -1;
  166.             if(oldId!=null && oldId.getId()!=null && oldId.getId().longValue()>0) {
  167.                 tableId = oldId.getId().longValue();
  168.                 oldId = null; // uso l'id fisico se presente
  169.             }
  170.             this._update(jdbcProperties, log, connection, sqlQueryObject, tableId, transazioneApplicativoServer, idMappingResolutionBehaviour, oldId);
  171.            
  172.         }
  173.         else {
  174.        
  175.             ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObject.newSQLQueryObject();
  176.             Long longIdByLogicId = this.findIdTransazioneApplicativoServer(jdbcProperties, log, connection, sqlQueryObjectUpdate.newSQLQueryObject(), oldId, true);
  177.             Long tableId = transazioneApplicativoServer.getId();
  178.             if(tableId != null && tableId.longValue() > 0) {
  179.                 if(tableId.longValue() != longIdByLogicId.longValue()) {
  180.                     throw new Exception("Ambiguous parameter: transazioneApplicativoServer.id ["+tableId+"] does not match logic id ["+longIdByLogicId+"]");
  181.                 }
  182.             } else {
  183.                 tableId = longIdByLogicId;
  184.                 transazioneApplicativoServer.setId(tableId);
  185.             }
  186.             if(tableId==null || tableId<=0){
  187.                 throw new Exception("Retrieve tableId failed");
  188.             }
  189.    
  190.             this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, transazioneApplicativoServer, idMappingResolutionBehaviour);
  191.            
  192.         }
  193.     }
  194.     @Override
  195.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, TransazioneApplicativoServer transazioneApplicativoServer, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  196.         this._update(jdbcProperties, log, connection, sqlQueryObject, tableId, transazioneApplicativoServer, idMappingResolutionBehaviour, null);
  197.     }
  198.     private void _update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject,
  199.             long tableId, TransazioneApplicativoServer transazioneApplicativoServer, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour,
  200.             IdTransazioneApplicativoServer idLogico) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  201.    
  202.         if(TipiDatabase.POSTGRESQL.equals(jdbcProperties.getDatabase())){
  203.             if(transazioneApplicativoServer.getFault()!=null && org.openspcoop2.utils.jdbc.PostgreSQLUtilities.containsNullByteSequence(transazioneApplicativoServer.getFault())) {
  204.                 transazioneApplicativoServer.setFault(org.openspcoop2.utils.jdbc.PostgreSQLUtilities.normalizeString(transazioneApplicativoServer.getFault()));
  205.             }
  206.         }
  207.            
  208.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  209.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  210.        
  211.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  212.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObjectInsert.newSQLQueryObject();
  213.         ISQLQueryObject sqlQueryObjectGet = sqlQueryObjectDelete.newSQLQueryObject();
  214.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObjectGet.newSQLQueryObject();
  215.        


  216.         // Object transazioneApplicativoServer
  217.         sqlQueryObjectUpdate.setANDLogicOperator(true);
  218.         sqlQueryObjectUpdate.addUpdateTable(this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()));
  219.         boolean isUpdate_transazioneApplicativoServer = true;
  220.         java.util.List<JDBCObject> lstObjects_transazioneApplicativoServer = new java.util.ArrayList<>();
  221.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().ID_TRANSAZIONE,false), "?");
  222.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getIdTransazione(), TransazioneApplicativoServer.model().ID_TRANSAZIONE.getFieldType()));
  223.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().SERVIZIO_APPLICATIVO_EROGATORE,false), "?");
  224.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getServizioApplicativoErogatore(), TransazioneApplicativoServer.model().SERVIZIO_APPLICATIVO_EROGATORE.getFieldType()));
  225.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONNETTORE_NOME,false), "?");
  226.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getConnettoreNome(), TransazioneApplicativoServer.model().CONNETTORE_NOME.getFieldType()));
  227.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_REGISTRAZIONE,false), "?");
  228.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataRegistrazione(), TransazioneApplicativoServer.model().DATA_REGISTRAZIONE.getFieldType()));
  229.         // NONSERIALIZZATO SU DB sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().PROTOCOLLO,false), "?");
  230.         // NONSERIALIZZATO SU DB lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getProtocollo(), TransazioneApplicativoServer.model().PROTOCOLLO.getFieldType()));
  231.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONSEGNA_TERMINATA,false), "?");
  232.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getConsegnaTerminata(), TransazioneApplicativoServer.model().CONSEGNA_TERMINATA.getFieldType()));
  233.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_MESSAGGIO_SCADUTO,false), "?");
  234.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataMessaggioScaduto(), TransazioneApplicativoServer.model().DATA_MESSAGGIO_SCADUTO.getFieldType()));
  235.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DETTAGLIO_ESITO,false), "?");
  236.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDettaglioEsito(), TransazioneApplicativoServer.model().DETTAGLIO_ESITO.getFieldType()));
  237.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONSEGNA_TRASPARENTE,false), "?");
  238.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getConsegnaTrasparente(), TransazioneApplicativoServer.model().CONSEGNA_TRASPARENTE.getFieldType()));
  239.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CONSEGNA_INTEGRATION_MANAGER,false), "?");
  240.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getConsegnaIntegrationManager(), TransazioneApplicativoServer.model().CONSEGNA_INTEGRATION_MANAGER.getFieldType()));
  241.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().IDENTIFICATIVO_MESSAGGIO,false), "?");
  242.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getIdentificativoMessaggio(), TransazioneApplicativoServer.model().IDENTIFICATIVO_MESSAGGIO.getFieldType()));
  243.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RICHIESTA,false), "?");
  244.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataAccettazioneRichiesta(), TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RICHIESTA.getFieldType()));
  245.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA,false), "?");
  246.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataUscitaRichiesta(), TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA.getFieldType()));
  247.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA_STREAM,false), "?");
  248.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataUscitaRichiestaStream(), TransazioneApplicativoServer.model().DATA_USCITA_RICHIESTA_STREAM.getFieldType()));
  249.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RISPOSTA,false), "?");
  250.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataAccettazioneRisposta(), TransazioneApplicativoServer.model().DATA_ACCETTAZIONE_RISPOSTA.getFieldType()));
  251.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA,false), "?");
  252.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataIngressoRisposta(), TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA.getFieldType()));
  253.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA_STREAM,false), "?");
  254.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataIngressoRispostaStream(), TransazioneApplicativoServer.model().DATA_INGRESSO_RISPOSTA_STREAM.getFieldType()));
  255.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().RICHIESTA_USCITA_BYTES,false), "?");
  256.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getRichiestaUscitaBytes(), TransazioneApplicativoServer.model().RICHIESTA_USCITA_BYTES.getFieldType()));
  257.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().RISPOSTA_INGRESSO_BYTES,false), "?");
  258.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getRispostaIngressoBytes(), TransazioneApplicativoServer.model().RISPOSTA_INGRESSO_BYTES.getFieldType()));
  259.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().LOCATION_CONNETTORE,false), "?");
  260.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getLocationConnettore(), TransazioneApplicativoServer.model().LOCATION_CONNETTORE.getFieldType()));
  261.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CODICE_RISPOSTA,false), "?");
  262.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getCodiceRisposta(), TransazioneApplicativoServer.model().CODICE_RISPOSTA.getFieldType()));
  263.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FAULT,false), "?");
  264.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getFault(), TransazioneApplicativoServer.model().FAULT.getFieldType()));
  265.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FORMATO_FAULT,false), "?");
  266.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getFormatoFault(), TransazioneApplicativoServer.model().FORMATO_FAULT.getFieldType()));
  267.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_PRIMO_TENTATIVO,false), "?");
  268.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataPrimoTentativo(), TransazioneApplicativoServer.model().DATA_PRIMO_TENTATIVO.getFieldType()));
  269.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().NUMERO_TENTATIVI,false), "?");
  270.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getNumeroTentativi(), TransazioneApplicativoServer.model().NUMERO_TENTATIVI.getFieldType()));
  271.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_PRESA_IN_CARICO,false), "?");
  272.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getClusterIdPresaInCarico(), TransazioneApplicativoServer.model().CLUSTER_ID_PRESA_IN_CARICO.getFieldType()));
  273.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_CONSEGNA,false), "?");
  274.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getClusterIdConsegna(), TransazioneApplicativoServer.model().CLUSTER_ID_CONSEGNA.getFieldType()));
  275.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ULTIMO_ERRORE,false), "?");
  276.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataUltimoErrore(), TransazioneApplicativoServer.model().DATA_ULTIMO_ERRORE.getFieldType()));
  277.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DETTAGLIO_ESITO_ULTIMO_ERRORE,false), "?");
  278.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDettaglioEsitoUltimoErrore(), TransazioneApplicativoServer.model().DETTAGLIO_ESITO_ULTIMO_ERRORE.getFieldType()));
  279.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CODICE_RISPOSTA_ULTIMO_ERRORE,false), "?");
  280.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getCodiceRispostaUltimoErrore(), TransazioneApplicativoServer.model().CODICE_RISPOSTA_ULTIMO_ERRORE.getFieldType()));
  281.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().ULTIMO_ERRORE,false), "?");
  282.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getUltimoErrore(), TransazioneApplicativoServer.model().ULTIMO_ERRORE.getFieldType()));
  283.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().LOCATION_ULTIMO_ERRORE,false), "?");
  284.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getLocationUltimoErrore(), TransazioneApplicativoServer.model().LOCATION_ULTIMO_ERRORE.getFieldType()));
  285.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_ULTIMO_ERRORE,false), "?");
  286.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getClusterIdUltimoErrore(), TransazioneApplicativoServer.model().CLUSTER_ID_ULTIMO_ERRORE.getFieldType()));
  287.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FAULT_ULTIMO_ERRORE,false), "?");
  288.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getFaultUltimoErrore(), TransazioneApplicativoServer.model().FAULT_ULTIMO_ERRORE.getFieldType()));
  289.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().FORMATO_FAULT_ULTIMO_ERRORE,false), "?");
  290.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getFormatoFaultUltimoErrore(), TransazioneApplicativoServer.model().FORMATO_FAULT_ULTIMO_ERRORE.getFieldType()));
  291.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_PRIMO_PRELIEVO_IM,false), "?");
  292.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataPrimoPrelievoIm(), TransazioneApplicativoServer.model().DATA_PRIMO_PRELIEVO_IM.getFieldType()));
  293.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_PRELIEVO_IM,false), "?");
  294.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataPrelievoIm(), TransazioneApplicativoServer.model().DATA_PRELIEVO_IM.getFieldType()));
  295.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().NUMERO_PRELIEVI_IM,false), "?");
  296.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getNumeroPrelieviIm(), TransazioneApplicativoServer.model().NUMERO_PRELIEVI_IM.getFieldType()));
  297.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().DATA_ELIMINAZIONE_IM,false), "?");
  298.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getDataEliminazioneIm(), TransazioneApplicativoServer.model().DATA_ELIMINAZIONE_IM.getFieldType()));
  299.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_PRELIEVO_IM,false), "?");
  300.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getClusterIdPrelievoIm(), TransazioneApplicativoServer.model().CLUSTER_ID_PRELIEVO_IM.getFieldType()));
  301.         sqlQueryObjectUpdate.addUpdateField(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().CLUSTER_ID_ELIMINAZIONE_IM,false), "?");
  302.         lstObjects_transazioneApplicativoServer.add(new JDBCObject(transazioneApplicativoServer.getClusterIdEliminazioneIm(), TransazioneApplicativoServer.model().CLUSTER_ID_ELIMINAZIONE_IM.getFieldType()));
  303.         if(idLogico!=null) {
  304.             sqlQueryObjectUpdate.addWhereCondition(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().ID_TRANSAZIONE,false)+ "=?");
  305.             sqlQueryObjectUpdate.addWhereCondition(this.getTransazioneApplicativoServerFieldConverter().toColumn(TransazioneApplicativoServer.model().SERVIZIO_APPLICATIVO_EROGATORE,false)+ "=?");
  306.             sqlQueryObjectUpdate.setANDLogicOperator(true);
  307.             lstObjects_transazioneApplicativoServer.add(new JDBCObject(idLogico.getIdTransazione(), String.class));
  308.             lstObjects_transazioneApplicativoServer.add(new JDBCObject(idLogico.getServizioApplicativoErogatore(), String.class));
  309.         }
  310.         else {
  311.             sqlQueryObjectUpdate.addWhereCondition("id=?");
  312.             lstObjects_transazioneApplicativoServer.add(new JDBCObject(tableId, Long.class));
  313.         }

  314.         if(isUpdate_transazioneApplicativoServer) {
  315.             // Update transazioneApplicativoServer
  316.             jdbcUtilities.executeUpdate(sqlQueryObjectUpdate.createSQLUpdate(), jdbcProperties.isShowSql(),
  317.                 lstObjects_transazioneApplicativoServer.toArray(new JDBCObject[]{}));
  318.         }


  319.     }
  320.    
  321.     @Override
  322.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdTransazioneApplicativoServer id, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  323.        
  324.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  325.                 this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()),
  326.                 this.getMapTableToPKColumnEngine(),
  327.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  328.                 this.getTransazioneApplicativoServerFieldConverter(), this, null, updateFields);
  329.     }
  330.    
  331.     @Override
  332.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdTransazioneApplicativoServer id, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  333.        
  334.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  335.                 this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()),
  336.                 this.getMapTableToPKColumnEngine(),
  337.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  338.                 this.getTransazioneApplicativoServerFieldConverter(), this, condition, updateFields);
  339.     }
  340.    
  341.     @Override
  342.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdTransazioneApplicativoServer id, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  343.        
  344.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  345.                 this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()),
  346.                 this.getMapTableToPKColumnEngine(),
  347.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  348.                 this.getTransazioneApplicativoServerFieldConverter(), this, updateModels);
  349.     }  
  350.    
  351.     @Override
  352.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  353.         java.util.List<Object> ids = new java.util.ArrayList<>();
  354.         ids.add(tableId);
  355.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  356.                 this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()),
  357.                 this.getMapTableToPKColumnEngine(),
  358.                 ids,
  359.                 this.getTransazioneApplicativoServerFieldConverter(), this, null, updateFields);
  360.     }
  361.    
  362.     @Override
  363.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  364.         java.util.List<Object> ids = new java.util.ArrayList<>();
  365.         ids.add(tableId);
  366.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  367.                 this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()),
  368.                 this.getMapTableToPKColumnEngine(),
  369.                 ids,
  370.                 this.getTransazioneApplicativoServerFieldConverter(), this, condition, updateFields);
  371.     }
  372.    
  373.     @Override
  374.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  375.         java.util.List<Object> ids = new java.util.ArrayList<>();
  376.         ids.add(tableId);
  377.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  378.                 this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()),
  379.                 this.getMapTableToPKColumnEngine(),
  380.                 ids,
  381.                 this.getTransazioneApplicativoServerFieldConverter(), this, updateModels);
  382.     }
  383.    
  384.     @Override
  385.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdTransazioneApplicativoServer oldId, TransazioneApplicativoServer transazioneApplicativoServer, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  386.    
  387.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, oldId)) {
  388.             this.update(jdbcProperties, log, connection, sqlQueryObject, oldId, transazioneApplicativoServer,idMappingResolutionBehaviour);
  389.         } else {
  390.             this.create(jdbcProperties, log, connection, sqlQueryObject, transazioneApplicativoServer,idMappingResolutionBehaviour);
  391.         }
  392.        
  393.     }
  394.    
  395.     @Override
  396.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, TransazioneApplicativoServer transazioneApplicativoServer, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  397.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, tableId)) {
  398.             this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, transazioneApplicativoServer,idMappingResolutionBehaviour);
  399.         } else {
  400.             this.create(jdbcProperties, log, connection, sqlQueryObject, transazioneApplicativoServer,idMappingResolutionBehaviour);
  401.         }
  402.     }
  403.    
  404.     @Override
  405.     public void delete(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, TransazioneApplicativoServer transazioneApplicativoServer) throws NotImplementedException,ServiceException,Exception {
  406.        
  407.        
  408.         Long longId = null;
  409.         if( (transazioneApplicativoServer.getId()!=null) && (transazioneApplicativoServer.getId()>0) ){
  410.             longId = transazioneApplicativoServer.getId();
  411.         }
  412.         else{
  413.             IdTransazioneApplicativoServer idTransazioneApplicativoServer = this.convertToId(jdbcProperties,log,connection,sqlQueryObject,transazioneApplicativoServer);
  414.             longId = this.findIdTransazioneApplicativoServer(jdbcProperties,log,connection,sqlQueryObject,idTransazioneApplicativoServer,false);
  415.             if(longId == null){
  416.                 return; // entry not exists
  417.             }
  418.         }      
  419.        
  420.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, longId);
  421.        
  422.     }

  423.     private void deleteEngine(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, Long id) throws NotImplementedException,ServiceException,Exception {
  424.    
  425.         if(id!=null && id.longValue()<=0){
  426.             throw new ServiceException("Id is less equals 0");
  427.         }
  428.        
  429.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  430.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  431.        
  432.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObject.newSQLQueryObject();
  433.        

  434.         // Object transazioneApplicativoServer
  435.         sqlQueryObjectDelete.setANDLogicOperator(true);
  436.         sqlQueryObjectDelete.addDeleteTable(this.getTransazioneApplicativoServerFieldConverter().toTable(TransazioneApplicativoServer.model()));
  437.         if(id != null)
  438.             sqlQueryObjectDelete.addWhereCondition("id=?");

  439.         // Delete transazioneApplicativoServer
  440.         jdbcUtilities.execute(sqlQueryObjectDelete.createSQLDelete(), jdbcProperties.isShowSql(),
  441.             new JDBCObject(id,Long.class));

  442.     }

  443.     @Override
  444.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdTransazioneApplicativoServer idTransazioneApplicativoServer) throws NotImplementedException,ServiceException,Exception {

  445.         Long id = null;
  446.         try{
  447.             id = this.findIdTransazioneApplicativoServer(jdbcProperties, log, connection, sqlQueryObject, idTransazioneApplicativoServer, true);
  448.         }catch(NotFoundException notFound){
  449.             return;
  450.         }
  451.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  452.        
  453.     }
  454.    
  455.     @Override
  456.     public NonNegativeNumber deleteAll(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject) throws NotImplementedException,ServiceException,Exception {
  457.        
  458.         return this.deleteAll(jdbcProperties, log, connection, sqlQueryObject, new JDBCExpression(this.getTransazioneApplicativoServerFieldConverter()));

  459.     }

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

  462.         java.util.List<Long> lst = this.findAllTableIds(jdbcProperties, log, connection, sqlQueryObject, new JDBCPaginatedExpression(expression));
  463.        
  464.         for(Long id : lst) {
  465.             this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  466.         }
  467.        
  468.         return new NonNegativeNumber(lst.size());
  469.    
  470.     }



  471.     // -- DB
  472.    
  473.     @Override
  474.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId) throws ServiceException, NotImplementedException, Exception {
  475.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, Long.valueOf(tableId));
  476.     }
  477.    
  478.     @Override
  479.     public int nativeUpdate(JDBCServiceManagerProperties jdbcProperties, Logger log,Connection connection,ISQLQueryObject sqlObject, String sql,Object ... param) throws ServiceException,NotImplementedException, Exception {
  480.    
  481.         return org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities.nativeUpdate(jdbcProperties, log, connection, sqlObject,
  482.                                                                                             sql,param);
  483.    
  484.     }
  485. }