Changeset 540


Ignore:
Timestamp:
07/27/12 16:12:44 (12 years ago)
Author:
vmipsl
Message:

Correction des relations (insert & update)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java

    r538 r540  
    863863            // Insert dimensions 
    864864            final Set<Dimension> dimensionsInDB = new HashSet<Dimension>( _dimensionDAO.selectAll() ); 
    865             final Set<Dimension> dimensionsToAdd = simulation.getDimension(); 
     865            final Set<Dimension> dimensionsInSimulation = simulation.getDimension(); 
     866            final Set<Dimension> dimensionsInDBAndSimulation = new HashSet<Dimension>( dimensionsInDB ); 
     867            dimensionsInDBAndSimulation.retainAll( dimensionsInSimulation ); 
     868            _dimensionDAO.updateAll( dimensionsInDBAndSimulation ); 
     869            final Set<Dimension> dimensionsToAdd = new HashSet<Dimension>( dimensionsInSimulation ); 
    866870            dimensionsToAdd.removeAll( dimensionsInDB ); 
    867871            _dimensionDAO.insertAll( dimensionsToAdd ); 
     872            dimensionsInDBAndSimulation.addAll( dimensionsToAdd ); 
     873            simulation.setDimension( dimensionsInDBAndSimulation ); 
    868874 
    869875            // Insert Attributes 
    870876            final Set<Attribute> attributesInDB = new HashSet<Attribute>( _attributeDAO.selectAll() ); 
    871             final Set<Attribute> attributesToAdd = simulation.getAttribute(); 
     877            final Set<Attribute> attributesInSimulation = simulation.getAttribute(); 
     878            final Set<Attribute> attributesInDBAndSimulation = new HashSet<Attribute>( attributesInDB ); 
     879            attributesInDBAndSimulation.retainAll( attributesInSimulation ); 
     880            _attributeDAO.updateAll( attributesInDBAndSimulation ); 
     881            final Set<Attribute> attributesToAdd = new HashSet<Attribute>( attributesInSimulation ); 
    872882            attributesToAdd.removeAll( attributesInDB ); 
    873883            _attributeDAO.insertAll( attributesToAdd ); 
     884            attributesInDBAndSimulation.addAll( attributesToAdd ); 
     885            simulation.setAttribute( attributesInDBAndSimulation ); 
    874886 
    875887            // Insert variables 
    876888            final Set<Variable> variablesInDB = new HashSet<Variable>( _variableDAO.selectAll() ); 
    877             final Set<Variable> variablesToAdd = simulation.getVariable(); 
     889            final Set<Variable> variablesInSimulation = simulation.getVariable(); 
     890            final Set<Variable> variablesInDBAndSimulation = new HashSet<Variable>( variablesInDB ); 
     891            variablesInDBAndSimulation.retainAll( variablesInDBAndSimulation ); 
     892            _variableDAO.updateAll( variablesInDBAndSimulation ); 
     893            final Set<Variable> variablesToAdd = new HashSet<Variable>( variablesInSimulation ); 
    878894            variablesToAdd.removeAll( variablesInDB ); 
    879             _variableDAO.insertAllWithUpdate( variablesToAdd ); 
     895            _variableDAO.insertAll( variablesToAdd ); 
     896            variablesInDBAndSimulation.addAll( variablesToAdd ); 
     897            simulation.setVariable( variablesInDBAndSimulation ); 
    880898 
    881899            // Insert header 
     
    884902            { 
    885903                simulationInDB.setXmlnsHeader( simulation.getXmlnsHeader() ); 
    886                 simulationInDB.getDimension().addAll( dimensionsToAdd ); 
    887                 simulationInDB.getAttribute().addAll( attributesToAdd ); 
    888                 simulationInDB.getVariable().addAll( variablesToAdd ); 
     904                simulationInDB.setDimension( simulation.getDimension() ); 
     905                simulationInDB.setAttribute( simulation.getAttribute() ); 
     906                simulationInDB.setVariable( simulation.getVariable() ); 
    889907                _simulationDAO.update( simulationInDB ); 
    890908                return simulationInDB.getId(); 
Note: See TracChangeset for help on using the changeset viewer.