Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: eb1c342b by Tony Chemit at 2022-03-08T06:13:12+01:00 move metadata model to service sql and clean all API - See ultreiaio/topia-extension#112 - - - - - 7d87fc65 by Tony Chemit at 2022-03-08T06:13:12+01:00 Add nice method TopiaSqlScript#content - See ultreiaio/topia-extension#113 - - - - - a406736e by Tony Chemit at 2022-03-08T06:13:12+01:00 Improve service local logs (add type and id if found in method invocation) - - - - - 19 changed files: - client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/DataSourceHelper.java - core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlCopyPlanModel.json - core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlDeletePlanModel.json - + core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlReplicatePlanModel.json - core/persistence/java/src/test/java/fr/ird/observe/spi/script/UpdateLastUpdateDateFieldScriptTest.java - core/persistence/java/src/test/java/fr/ird/observe/spi/script/UpdateLastUpdateDateTableScriptTest.java - core/persistence/test/src/main/java/fr/ird/observe/persistence/test/PersistenceTestSupportRead.java - core/persistence/test/src/main/java/fr/ird/observe/persistence/test/PersistenceTestSupportWrite.java - core/persistence/test/src/test/java/fr/ird/observe/persistence/test/DefinitionContentTest.java - core/persistence/test/src/test/java/fr/ird/observe/persistence/test/PersistenceModelWriteTest.java - core/persistence/test/src/test/java/fr/ird/observe/persistence/test/SqlServiceTest.java - core/persistence/test/src/test/java/fr/ird/observe/persistence/test/ValidationContentTest.java - core/services/local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocalSupport.java - core/services/local/src/main/java/fr/ird/observe/services/local/service/ObserveServiceLocal.java - core/services/local/src/main/java/fr/ird/observe/services/local/service/referential/SynchronizeServiceLocalSupport.java - core/services/test/src/main/java/fr/ird/observe/services/service/DataSourceServiceFixtures.java Changes: ===================================== client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java ===================================== @@ -457,7 +457,7 @@ public class ObserveSwingDataSource extends AbstractJavaBean implements ObserveS log.info(String.format("Do backup of %s into: %s", this, dst)); try { Files.deleteIfExists(dst); - CreateDatabaseRequest request = CreateDatabaseRequest.of(false, getClientConfig().getModelVersion()).addSchema().addStandaloneTables().addAllData(); + CreateDatabaseRequest request = CreateDatabaseRequest.builder(false, getClientConfig().getModelVersion()).addSchema().addStandaloneTables().addAllData().build(); TopiaSqlScript dataDump = getDataSourceService().produceCreateSqlScript(request); dataDump.copy(dst); } catch (Exception e) { ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/save/actions/Start.java ===================================== @@ -86,7 +86,7 @@ public class Start extends SaveLocalUIActionSupport { File backupFile = stepModel.getBackupFile(); DataSourceService dumpService = source.getDataSourceService(); - CreateDatabaseRequest request = CreateDatabaseRequest.of(false, source.getVersion()).addSchema().addStandaloneTables().addAllData(); + CreateDatabaseRequest request = CreateDatabaseRequest.builder(false, source.getVersion()).addSchema().addStandaloneTables().addAllData().build(); TopiaSqlScript dump = dumpService.produceCreateSqlScript(request); dump.copy(backupFile.toPath()); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/DataSourceHelper.java ===================================== @@ -135,7 +135,7 @@ public class DataSourceHelper { try (ObserveSwingDataSource source = model.getDataSourcesManager().newDataSource(configSrc)) { source.open(); DataSourceService dumpService = source.getDataSourceService(); - CreateDatabaseRequest request = CreateDatabaseRequest.of(false, source.getVersion()).addSchema().addStandaloneTables(); + CreateDatabaseRequest request = CreateDatabaseRequest.builder(false, source.getVersion()).addSchema().addStandaloneTables().build(); importDatabase = dumpService.produceCreateSqlScript(request); } } ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java ===================================== @@ -40,14 +40,15 @@ import org.nuiton.topia.persistence.TopiaConfigurationExtension; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaIdFactory; import org.nuiton.topia.persistence.TopiaPersistenceContextConstructorParameterSupport; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModelPaths; import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.service.migration.TopiaMigrationService; import org.nuiton.topia.service.sql.blob.TopiaEntitySqlBlobModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModelPaths; import org.nuiton.topia.service.sql.model.TopiaEntitySqlModel; import org.nuiton.topia.service.sql.plan.copy.TopiaEntitySqlCopyPlanModel; import org.nuiton.topia.service.sql.plan.delete.TopiaEntitySqlDeletePlanModel; +import org.nuiton.topia.service.sql.plan.replicate.TopiaEntitySqlReplicatePlanModel; import org.nuiton.topia.service.sql.request.CreateDatabaseRequest; import org.nuiton.topia.service.sql.usage.TopiaEntitySqlUsageModel; @@ -120,6 +121,11 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return ObserveTopiaEntitySqlModelResource.get().getCopyPlanModel(); } + @Override + public TopiaEntitySqlReplicatePlanModel getReplicatePlanModel() { + return ObserveTopiaEntitySqlModelResource.get().getReplicatePlanModel(); + } + @Override public TopiaEntitySqlDeletePlanModel getDeletePlanModel() { return ObserveTopiaEntitySqlModelResource.get().getDeletePlanModel(); @@ -174,7 +180,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat temporaryTopiaApplicationContext.getMigrationService().createSchemaIfNotExist(); temporaryTopiaApplicationContext.getMigrationService().runSchemaMigration(); } - CreateDatabaseRequest request = CreateDatabaseRequest.of(true, dataSourceConfiguration.getModelVersion()).addSchema().addStandaloneTables().addAllData(); + CreateDatabaseRequest request = CreateDatabaseRequest.builder(true, dataSourceConfiguration.getModelVersion()).addSchema().addStandaloneTables().addAllData().build(); TopiaSqlScript dump = getSqlService().consume(request); executeSqlStatements(dump); migrationService.createSchemaIfNotExist(); @@ -204,8 +210,8 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat log.info("Import referential."); ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportReferentialDataSourceConfiguration(); Version dbVersion = Version.valueOf(getModelVersion()); - CreateDatabaseRequest request = CreateDatabaseRequest.of(!dataSourceConfiguration.isLocal(), dbVersion) - .addStandaloneTables(); + CreateDatabaseRequest request = CreateDatabaseRequest.builder(!dataSourceConfiguration.isLocal(), dbVersion) + .addStandaloneTables().build(); TopiaSqlScript referentialDump; ObserveTopiaApplicationContext temporaryTopiaApplicationContext = null; try { @@ -225,10 +231,10 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat if (importData) { ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportDataDataSourceConfiguration(); Version dbVersion = Version.valueOf(getModelVersion()); - CreateDatabaseRequest request = CreateDatabaseRequest.of(!dataSourceConfiguration.isLocal(), dbVersion); + CreateDatabaseRequest.Builder requestBuilder = CreateDatabaseRequest.builder(!dataSourceConfiguration.isLocal(), dbVersion); if (!referentialImported) { log.info("Get referential."); - request.addStandaloneTables(); + requestBuilder.addStandaloneTables(); } // Récupération du dump qui contient les données @@ -241,10 +247,11 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat } log.info(String.format("Get data: %s", importDataIds)); for (Map.Entry<String, Collection<String>> entry : idsByType.asMap().entrySet()) { - request.dataIdsToAdd(entry.getKey(), Set.copyOf(entry.getValue())); + requestBuilder.dataIdsToAdd(entry.getKey(), Set.copyOf(entry.getValue())); } TopiaSqlScript dataDump; ObserveTopiaApplicationContext temporaryTopiaApplicationContext = null; + CreateDatabaseRequest request = requestBuilder.build(); try { temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(importDataSourceConfiguration, false); // ObserveDataSourceConnection importDataSourceConnection = serviceContext().newService(importDataSourceConfiguration, AnonymousService.class).open(importDataSourceConfiguration); ===================================== core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlCopyPlanModel.json ===================================== The diff for this file was not included because it is too large. ===================================== core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlDeletePlanModel.json ===================================== @@ -1,5 +1,5 @@ { - "typeDeletePlans": { + "plans": { "fr.ird.observe.entities.data.ll.common.GearUseFeatures": [ "DELETE FROM ll_common.gearUseFeaturesMeasurement WHERE gearUseFeaturesMeasurement.gearUseFeatures %s;", "DELETE FROM ll_common.gearUseFeatures WHERE gearUseFeatures.topiaId %s;" ===================================== core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlReplicatePlanModel.json ===================================== @@ -0,0 +1,1476 @@ +{ + "plans": { + "fr.ird.observe.entities.data.ll.common.GearUseFeatures": [ + { + "gav": "ll_common.gearUseFeatures", + "selectedSql": "SELECT %s FROM ll_common.gearUseFeatures WHERE gearUseFeatures.topiaId %s", + "insertSql": "INSERT INTO ll_common.gearUseFeatures(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,gear,homeid,lastupdatedate,number,topiacreatedate,topiaversion,trip,usedintrip", + "entryPoint": true + }, + { + "gav": "ll_common.gearUseFeaturesMeasurement", + "selectedSql": "SELECT %s FROM ll_common.gearUseFeaturesMeasurement gearUseFeaturesMeasurement WHERE gearUseFeaturesMeasurement.gearUseFeatures %s", + "insertSql": "INSERT INTO ll_common.gearUseFeaturesMeasurement(%s) VALUES (%%s);", + "parentColumnName": "gearUseFeatures", + "columnNames": "topiaid,gearcharacteristic,gearusefeatures,homeid,lastupdatedate,measurementvalue,topiacreatedate,topiaversion" + } + ], + "fr.ird.observe.entities.data.ll.common.GearUseFeaturesMeasurement": [ + { + "gav": "ll_common.gearUseFeaturesMeasurement", + "selectedSql": "SELECT %s FROM ll_common.gearUseFeaturesMeasurement WHERE gearUseFeaturesMeasurement.topiaId %s", + "insertSql": "INSERT INTO ll_common.gearUseFeaturesMeasurement(%s) VALUES (%%s);", + "parentColumnName": "gearUseFeatures", + "columnNames": "topiaid,gearcharacteristic,gearusefeatures,homeid,lastupdatedate,measurementvalue,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.landing.Landing": [ + { + "gav": "ll_landing.landing", + "selectedSql": "SELECT %s FROM ll_landing.landing WHERE landing.topiaId %s", + "insertSql": "INSERT INTO ll_landing.landing(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,brokeragecompany,comment,datasource,enddate,harbour,homeid,lastupdatedate,person,processingcompany,shippingcompany,startdate,topiacreatedate,topiaversion,trip,vessel", + "entryPoint": true + }, + { + "gav": "ll_landing.landingPart", + "selectedSql": "SELECT %s FROM ll_landing.landingPart landingPart WHERE landingPart.landing %s", + "insertSql": "INSERT INTO ll_landing.landingPart(%s) VALUES (%%s);", + "parentColumnName": "landing", + "columnNames": "topiaid,categorymax,categorymin,conservation,count,dataquality,homeid,landing,lastupdatedate,onboardprocessing,species,topiacreatedate,topiaversion,weight,weightmeasuremethod" + } + ], + "fr.ird.observe.entities.data.ll.landing.LandingPart": [ + { + "gav": "ll_landing.landingPart", + "selectedSql": "SELECT %s FROM ll_landing.landingPart WHERE landingPart.topiaId %s", + "insertSql": "INSERT INTO ll_landing.landingPart(%s) VALUES (%%s);", + "parentColumnName": "landing", + "columnNames": "topiaid,categorymax,categorymin,conservation,count,dataquality,homeid,landing,lastupdatedate,onboardprocessing,species,topiacreatedate,topiaversion,weight,weightmeasuremethod", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.logbook.Activity": [ + { + "gav": "ll_logbook.set", + "selectedSql": "SELECT %s FROM ll_logbook.set set INNER JOIN ll_logbook.activity activity ON activity.set = set.topiaId WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.set(%s) VALUES (%%s);", + "columnNames": "topiaid,basketlinelength,basketspersectioncount,branchlinesperbasketcount,comment,haulingbreaks,haulingdirectionsameassetting,haulingendlatitude,haulingendlongitude,haulingendtimestamp,haulingstartlatitude,haulingstartlongitude,haulingstarttimestamp,homeid,lastupdatedate,lengthbetweenbranchlines,lightstickscolor,lightsticksperbasketcount,lightstickstype,lightsticksused,linetype,maxdepthtargeted,monitored,number,settingendlatitude,settingendlongitude,settingendtimestamp,settingshape,settingstartlatitude,settingstartlongitude,settingstarttimestamp,settingvesselspeed,shooterspeed,shooterused,snapweight,swivelweight,timebetweenhooks,topiacreatedate,topiaversion,totalbasketscount,totalhookscount,totallightstickscount,totallinelength,totalsectionscount,weightedsnap,weightedswivel" + }, + { + "gav": "ll_logbook.sample", + "selectedSql": "SELECT %s FROM ll_logbook.sample sample INNER JOIN ll_logbook.activity activity ON activity.sample = sample.topiaId WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.sample(%s) VALUES (%%s);", + "columnNames": "topiaid,comment,homeid,lastupdatedate,latitude,longitude,timestamp,topiacreatedate,topiaversion,trip" + }, + { + "gav": "ll_logbook.activity", + "selectedSql": "SELECT %s FROM ll_logbook.activity WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.activity(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,currentdirection,currentspeed,dataquality,endtimestamp,fpazone,homeid,lastupdatedate,latitude,longitude,relatedobservedactivity,sample,seasurfacetemperature,set,starttimestamp,topiacreatedate,topiaversion,trip,vesselactivity,wind,winddirection", + "columnsToReplace": "set,sample", + "columnsToDetach": "relatedObservedActivity~ll_observation.activity", + "entryPoint": true + }, + { + "gav": "ll_logbook.baitsComposition", + "selectedSql": "SELECT %s FROM ll_logbook.baitsComposition baitsComposition INNER JOIN ll_logbook.activity activity ON activity.set = baitsComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.baitsComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,baitsettingstatus,baittype,homeid,individualsize,individualweight,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_logbook.branchlinesComposition", + "selectedSql": "SELECT %s FROM ll_logbook.branchlinesComposition branchlinesComposition INNER JOIN ll_logbook.activity activity ON activity.set = branchlinesComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.branchlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,proportion,set,topiacreatedate,topiaversion,toptype,tracelinelength,tracelinetype" + }, + { + "gav": "ll_logbook.catch", + "selectedSql": "SELECT %s FROM ll_logbook.catch catch INNER JOIN ll_logbook.activity activity ON activity.set = catch.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,beatdiameter,catchfate,catchhealthstatus,comment,count,countdepredated,depredated,depredatedproportion,discardhealthstatus,homeid,hookwhendiscarded,lastupdatedate,number,onboardprocessing,photoreferences,set,set_idx,species,tagnumber,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ll_logbook.floatlinesComposition", + "selectedSql": "SELECT %s FROM ll_logbook.floatlinesComposition floatlinesComposition INNER JOIN ll_logbook.activity activity ON activity.set = floatlinesComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.floatlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,linetype,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_logbook.hooksComposition", + "selectedSql": "SELECT %s FROM ll_logbook.hooksComposition hooksComposition INNER JOIN ll_logbook.activity activity ON activity.set = hooksComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.hooksComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,hookoffset,hooksize,hooktype,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_logbook.samplePart", + "selectedSql": "SELECT %s FROM ll_logbook.samplePart samplePart INNER JOIN ll_logbook.activity activity ON activity.sample = samplePart.sample WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.samplePart(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,lastupdatedate,length,lengthmeasuremethod,sample,sample_idx,sex,sizemeasuretype,species,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype" + }, + { + "gav": "ll_logbook.set_mitigationtype", + "selectedSql": "SELECT %s FROM ll_logbook.set_mitigationtype INNER JOIN ll_logbook.set set ON set_mitigationtype.set = set.topiaId INNER JOIN ll_logbook.activity activity ON activity.set = set.topiaId WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.set_mitigationtype(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "mitigationtype,set", + "columnsToReplace": "set" + }, + { + "gav": "ll_logbook.catch_predator", + "selectedSql": "SELECT %s FROM ll_logbook.catch_predator INNER JOIN ll_logbook.catch catch ON catch_predator.catch = catch.topiaId INNER JOIN ll_logbook.activity activity ON activity.set = catch.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.catch_predator(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "catch,species", + "columnsToReplace": "catch" + } + ], + "fr.ird.observe.entities.data.ll.logbook.BaitsComposition": [ + { + "gav": "ll_logbook.baitsComposition", + "selectedSql": "SELECT %s FROM ll_logbook.baitsComposition WHERE baitsComposition.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.baitsComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,baitsettingstatus,baittype,homeid,individualsize,individualweight,lastupdatedate,proportion,set,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.logbook.BranchlinesComposition": [ + { + "gav": "ll_logbook.branchlinesComposition", + "selectedSql": "SELECT %s FROM ll_logbook.branchlinesComposition WHERE branchlinesComposition.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.branchlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,proportion,set,topiacreatedate,topiaversion,toptype,tracelinelength,tracelinetype", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.logbook.Catch": [ + { + "gav": "ll_logbook.catch", + "selectedSql": "SELECT %s FROM ll_logbook.catch WHERE catch.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,beatdiameter,catchfate,catchhealthstatus,comment,count,countdepredated,depredated,depredatedproportion,discardhealthstatus,homeid,hookwhendiscarded,lastupdatedate,number,onboardprocessing,photoreferences,set,set_idx,species,tagnumber,topiacreatedate,topiaversion,totalweight,weightmeasuremethod", + "entryPoint": true + }, + { + "gav": "ll_logbook.catch_predator", + "selectedSql": "SELECT %s FROM ll_logbook.catch_predator WHERE catch_predator.catch %s", + "insertSql": "INSERT INTO ll_logbook.catch_predator(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "catch,species", + "columnsToReplace": "catch" + } + ], + "fr.ird.observe.entities.data.ll.logbook.FloatlinesComposition": [ + { + "gav": "ll_logbook.floatlinesComposition", + "selectedSql": "SELECT %s FROM ll_logbook.floatlinesComposition WHERE floatlinesComposition.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.floatlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,linetype,proportion,set,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.logbook.HooksComposition": [ + { + "gav": "ll_logbook.hooksComposition", + "selectedSql": "SELECT %s FROM ll_logbook.hooksComposition WHERE hooksComposition.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.hooksComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,hookoffset,hooksize,hooktype,lastupdatedate,proportion,set,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.logbook.Sample": [ + { + "gav": "ll_logbook.sample", + "selectedSql": "SELECT %s FROM ll_logbook.sample WHERE sample.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.sample(%s) VALUES (%%s);", + "updateReverseAssociationSql": "UPDATE ll_logbook.activity activity SET activity.sample = '%s' WHERE activity.topiaId = '%s'", + "columnNames": "topiaid,comment,homeid,lastupdatedate,latitude,longitude,timestamp,topiacreatedate,topiaversion,trip", + "entryPoint": true + }, + { + "gav": "ll_logbook.samplePart", + "selectedSql": "SELECT %s FROM ll_logbook.samplePart samplePart WHERE samplePart.sample %s", + "insertSql": "INSERT INTO ll_logbook.samplePart(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,lastupdatedate,length,lengthmeasuremethod,sample,sample_idx,sex,sizemeasuretype,species,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype" + } + ], + "fr.ird.observe.entities.data.ll.logbook.SamplePart": [ + { + "gav": "ll_logbook.samplePart", + "selectedSql": "SELECT %s FROM ll_logbook.samplePart WHERE samplePart.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.samplePart(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,lastupdatedate,length,lengthmeasuremethod,sample,sample_idx,sex,sizemeasuretype,species,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.logbook.Set": [ + { + "gav": "ll_logbook.set", + "selectedSql": "SELECT %s FROM ll_logbook.set WHERE set.topiaId %s", + "insertSql": "INSERT INTO ll_logbook.set(%s) VALUES (%%s);", + "updateReverseAssociationSql": "UPDATE ll_logbook.activity activity SET activity.set = '%s' WHERE activity.topiaId = '%s'", + "columnNames": "topiaid,basketlinelength,basketspersectioncount,branchlinesperbasketcount,comment,haulingbreaks,haulingdirectionsameassetting,haulingendlatitude,haulingendlongitude,haulingendtimestamp,haulingstartlatitude,haulingstartlongitude,haulingstarttimestamp,homeid,lastupdatedate,lengthbetweenbranchlines,lightstickscolor,lightsticksperbasketcount,lightstickstype,lightsticksused,linetype,maxdepthtargeted,monitored,number,settingendlatitude,settingendlongitude,settingendtimestamp,settingshape,settingstartlatitude,settingstartlongitude,settingstarttimestamp,settingvesselspeed,shooterspeed,shooterused,snapweight,swivelweight,timebetweenhooks,topiacreatedate,topiaversion,totalbasketscount,totalhookscount,totallightstickscount,totallinelength,totalsectionscount,weightedsnap,weightedswivel", + "entryPoint": true + }, + { + "gav": "ll_logbook.baitsComposition", + "selectedSql": "SELECT %s FROM ll_logbook.baitsComposition baitsComposition WHERE baitsComposition.set %s", + "insertSql": "INSERT INTO ll_logbook.baitsComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,baitsettingstatus,baittype,homeid,individualsize,individualweight,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_logbook.branchlinesComposition", + "selectedSql": "SELECT %s FROM ll_logbook.branchlinesComposition branchlinesComposition WHERE branchlinesComposition.set %s", + "insertSql": "INSERT INTO ll_logbook.branchlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,proportion,set,topiacreatedate,topiaversion,toptype,tracelinelength,tracelinetype" + }, + { + "gav": "ll_logbook.catch", + "selectedSql": "SELECT %s FROM ll_logbook.catch catch WHERE catch.set %s", + "insertSql": "INSERT INTO ll_logbook.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,beatdiameter,catchfate,catchhealthstatus,comment,count,countdepredated,depredated,depredatedproportion,discardhealthstatus,homeid,hookwhendiscarded,lastupdatedate,number,onboardprocessing,photoreferences,set,set_idx,species,tagnumber,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ll_logbook.floatlinesComposition", + "selectedSql": "SELECT %s FROM ll_logbook.floatlinesComposition floatlinesComposition WHERE floatlinesComposition.set %s", + "insertSql": "INSERT INTO ll_logbook.floatlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,linetype,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_logbook.hooksComposition", + "selectedSql": "SELECT %s FROM ll_logbook.hooksComposition hooksComposition WHERE hooksComposition.set %s", + "insertSql": "INSERT INTO ll_logbook.hooksComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,hookoffset,hooksize,hooktype,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_logbook.set_mitigationtype", + "selectedSql": "SELECT %s FROM ll_logbook.set_mitigationtype WHERE set_mitigationtype.set %s", + "insertSql": "INSERT INTO ll_logbook.set_mitigationtype(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "mitigationtype,set", + "columnsToReplace": "set" + }, + { + "gav": "ll_logbook.catch_predator", + "selectedSql": "SELECT %s FROM ll_logbook.catch_predator INNER JOIN ll_logbook.catch catch ON catch_predator.catch = catch.topiaId WHERE catch.set %s", + "insertSql": "INSERT INTO ll_logbook.catch_predator(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "catch,species", + "columnsToReplace": "catch" + } + ], + "fr.ird.observe.entities.data.ll.observation.Activity": [ + { + "gav": "ll_observation.set", + "selectedSql": "SELECT %s FROM ll_observation.set set INNER JOIN ll_observation.activity activity ON activity.set = set.topiaId WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.set(%s) VALUES (%%s);", + "columnNames": "topiaid,basketspersectioncount,branchlinesperbasketcount,comment,haulingbreaks,haulingdirectionsameassetting,haulingendlatitude,haulingendlongitude,haulingendtimestamp,haulingstartlatitude,haulingstartlongitude,haulingstarttimestamp,homeid,lastupdatedate,lightstickscolor,lightsticksperbasketcount,lightstickstype,linetype,maxdepthtargeted,monitored,number,settingendlatitude,settingendlongitude,settingendtimestamp,settingshape,settingstartlatitude,settingstartlongitude,settingstarttimestamp,settingvesselspeed,shooterspeed,shooterused,snapweight,swivelweight,timebetweenhooks,topiacreatedate,topiaversion,totalbasketscount,totalhookscount,totalsectionscount,weightedsnap,weightedswivel" + }, + { + "gav": "ll_observation.activity", + "selectedSql": "SELECT %s FROM ll_observation.activity WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.activity(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,dataquality,fpazone,homeid,lastupdatedate,latitude,longitude,seasurfacetemperature,set,timestamp,topiacreatedate,topiaversion,trip,vesselactivity", + "columnsToReplace": "set", + "entryPoint": true + }, + { + "gav": "ll_observation.encounter", + "selectedSql": "SELECT %s FROM ll_observation.encounter encounter WHERE encounter.activity %s", + "insertSql": "INSERT INTO ll_observation.encounter(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,count,distance,encountertype,homeid,lastupdatedate,species,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.sensorUsed", + "selectedSql": "SELECT %s FROM ll_observation.sensorUsed sensorUsed WHERE sensorUsed.activity %s", + "insertSql": "INSERT INTO ll_observation.sensorUsed(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,data,datafilename,datalocation,homeid,lastupdatedate,sensorbrand,sensordataformat,sensorserialno,sensortype,topiacreatedate,topiaversion", + "useBlob": true + }, + { + "gav": "ll_observation.baitsComposition", + "selectedSql": "SELECT %s FROM ll_observation.baitsComposition baitsComposition INNER JOIN ll_observation.activity activity ON activity.set = baitsComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.baitsComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,baitsettingstatus,baittype,homeid,individualsize,individualweight,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.branchlinesComposition", + "selectedSql": "SELECT %s FROM ll_observation.branchlinesComposition branchlinesComposition INNER JOIN ll_observation.activity activity ON activity.set = branchlinesComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.branchlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,proportion,set,topiacreatedate,topiaversion,toptype,tracelinelength,tracelinetype" + }, + { + "gav": "ll_observation.floatlinesComposition", + "selectedSql": "SELECT %s FROM ll_observation.floatlinesComposition floatlinesComposition INNER JOIN ll_observation.activity activity ON activity.set = floatlinesComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.floatlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,linetype,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.hooksComposition", + "selectedSql": "SELECT %s FROM ll_observation.hooksComposition hooksComposition INNER JOIN ll_observation.activity activity ON activity.set = hooksComposition.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.hooksComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,hookoffset,hooksize,hooktype,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.section", + "selectedSql": "SELECT %s FROM ll_observation.section section INNER JOIN ll_observation.activity activity ON activity.set = section.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.section(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,haulingidentifier,homeid,lastupdatedate,set,settingidentifier,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.basket", + "selectedSql": "SELECT %s FROM ll_observation.basket basket INNER JOIN ll_observation.section section ON section.topiaId = basket.section INNER JOIN ll_observation.activity activity ON activity.set = section.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.basket(%s) VALUES (%%s);", + "parentColumnName": "section", + "columnNames": "topiaid,floatline1length,floatline2length,haulingidentifier,homeid,lastupdatedate,section,settingidentifier,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.branchline", + "selectedSql": "SELECT %s FROM ll_observation.branchline branchline INNER JOIN ll_observation.basket basket ON basket.topiaId = branchline.basket INNER JOIN ll_observation.section section ON section.topiaId = basket.section INNER JOIN ll_observation.activity activity ON activity.set = section.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.branchline(%s) VALUES (%%s);", + "parentColumnName": "basket", + "columnNames": "topiaid,baithaulingstatus,baitsettingstatus,baittype,basket,branchlinelength,comment,depthrecorder,haulingidentifier,homeid,hooklost,hookoffset,hooksize,hooktype,lastupdatedate,settingidentifier,snapweight,swivelweight,timer,timertimeonboard,timesincecontact,topiacreatedate,topiaversion,toptype,tracecutoff,tracelinelength,tracelinetype,weightedsnap,weightedswivel" + }, + { + "gav": "ll_observation.tdr", + "selectedSql": "SELECT %s FROM ll_observation.tdr tdr INNER JOIN ll_observation.activity activity ON activity.set = tdr.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.tdr(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,basket,branchline,data,datafilename,datalocation,deploymentend,deploymentstart,fishingend,fishingenddepth,fishingstart,fishingstartdepth,floatline1length,floatline2length,homeid,itemhorizontalposition,itemverticalposition,lastupdatedate,maxfishingdepth,meandeploymentdepth,meanfishingdepth,mediandeploymentdepth,medianfishingdepth,minfishingdepth,section,sensorbrand,serialno,set,topiacreatedate,topiaversion", + "columnsToReplace": "section,basket,branchline", + "useBlob": true + }, + { + "gav": "ll_observation.catch", + "selectedSql": "SELECT %s FROM ll_observation.catch catch INNER JOIN ll_observation.activity activity ON activity.set = catch.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,basket,beatdiameter,branchline,catchfate,catchhealthstatus,comment,count,depredated,discardhealthstatus,gonadeweight,homeid,hookposition,hookwhendiscarded,lastupdatedate,maturitystatus,number,photoreferences,section,set,set_idx,sex,species,stomachfullness,tagnumber,topiacreatedate,topiaversion,totalweight,weightmeasuremethod", + "columnsToReplace": "section,basket,branchline" + }, + { + "gav": "ll_observation.sizeMeasure", + "selectedSql": "SELECT %s FROM ll_observation.sizeMeasure sizeMeasure INNER JOIN ll_observation.catch catch ON catch.topiaId = sizeMeasure.catch INNER JOIN ll_observation.activity activity ON activity.set = catch.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.sizeMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,size,sizemeasuretype,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.weightMeasure", + "selectedSql": "SELECT %s FROM ll_observation.weightMeasure weightMeasure INNER JOIN ll_observation.catch catch ON catch.topiaId = weightMeasure.catch INNER JOIN ll_observation.activity activity ON activity.set = catch.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.weightMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,topiacreatedate,topiaversion,weight,weightmeasuretype" + }, + { + "gav": "ll_observation.set_mitigationtype", + "selectedSql": "SELECT %s FROM ll_observation.set_mitigationtype INNER JOIN ll_observation.set set ON set_mitigationtype.set = set.topiaId INNER JOIN ll_observation.activity activity ON activity.set = set.topiaId WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.set_mitigationtype(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "mitigationtype,set", + "columnsToReplace": "set" + }, + { + "gav": "ll_observation.tdr_species", + "selectedSql": "SELECT %s FROM ll_observation.tdr_species INNER JOIN ll_observation.tdr tdr ON tdr_species.tdr = tdr.topiaId INNER JOIN ll_observation.activity activity ON activity.set = tdr.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.tdr_species(%s) VALUES (%%s);", + "parentColumnName": "tdr", + "columnNames": "species,tdr", + "columnsToReplace": "tdr" + }, + { + "gav": "ll_observation.catch_predator", + "selectedSql": "SELECT %s FROM ll_observation.catch_predator INNER JOIN ll_observation.catch catch ON catch_predator.catch = catch.topiaId INNER JOIN ll_observation.activity activity ON activity.set = catch.set WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ll_observation.catch_predator(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "catch,species", + "columnsToReplace": "catch" + } + ], + "fr.ird.observe.entities.data.ll.observation.BaitsComposition": [ + { + "gav": "ll_observation.baitsComposition", + "selectedSql": "SELECT %s FROM ll_observation.baitsComposition WHERE baitsComposition.topiaId %s", + "insertSql": "INSERT INTO ll_observation.baitsComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,baitsettingstatus,baittype,homeid,individualsize,individualweight,lastupdatedate,proportion,set,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.Basket": [ + { + "gav": "ll_observation.basket", + "selectedSql": "SELECT %s FROM ll_observation.basket WHERE basket.topiaId %s", + "insertSql": "INSERT INTO ll_observation.basket(%s) VALUES (%%s);", + "parentColumnName": "section", + "columnNames": "topiaid,floatline1length,floatline2length,haulingidentifier,homeid,lastupdatedate,section,settingidentifier,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ll_observation.branchline", + "selectedSql": "SELECT %s FROM ll_observation.branchline branchline WHERE branchline.basket %s", + "insertSql": "INSERT INTO ll_observation.branchline(%s) VALUES (%%s);", + "parentColumnName": "basket", + "columnNames": "topiaid,baithaulingstatus,baitsettingstatus,baittype,basket,branchlinelength,comment,depthrecorder,haulingidentifier,homeid,hooklost,hookoffset,hooksize,hooktype,lastupdatedate,settingidentifier,snapweight,swivelweight,timer,timertimeonboard,timesincecontact,topiacreatedate,topiaversion,toptype,tracecutoff,tracelinelength,tracelinetype,weightedsnap,weightedswivel" + } + ], + "fr.ird.observe.entities.data.ll.observation.Branchline": [ + { + "gav": "ll_observation.branchline", + "selectedSql": "SELECT %s FROM ll_observation.branchline WHERE branchline.topiaId %s", + "insertSql": "INSERT INTO ll_observation.branchline(%s) VALUES (%%s);", + "parentColumnName": "basket", + "columnNames": "topiaid,baithaulingstatus,baitsettingstatus,baittype,basket,branchlinelength,comment,depthrecorder,haulingidentifier,homeid,hooklost,hookoffset,hooksize,hooktype,lastupdatedate,settingidentifier,snapweight,swivelweight,timer,timertimeonboard,timesincecontact,topiacreatedate,topiaversion,toptype,tracecutoff,tracelinelength,tracelinetype,weightedsnap,weightedswivel", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.BranchlinesComposition": [ + { + "gav": "ll_observation.branchlinesComposition", + "selectedSql": "SELECT %s FROM ll_observation.branchlinesComposition WHERE branchlinesComposition.topiaId %s", + "insertSql": "INSERT INTO ll_observation.branchlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,proportion,set,topiacreatedate,topiaversion,toptype,tracelinelength,tracelinetype", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.Catch": [ + { + "gav": "ll_observation.catch", + "selectedSql": "SELECT %s FROM ll_observation.catch WHERE catch.topiaId %s", + "insertSql": "INSERT INTO ll_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,basket,beatdiameter,branchline,catchfate,catchhealthstatus,comment,count,depredated,discardhealthstatus,gonadeweight,homeid,hookposition,hookwhendiscarded,lastupdatedate,maturitystatus,number,photoreferences,section,set,set_idx,sex,species,stomachfullness,tagnumber,topiacreatedate,topiaversion,totalweight,weightmeasuremethod", + "columnsToDetach": "section~ll_observation.section,basket~ll_observation.basket,branchline~ll_observation.branchline", + "entryPoint": true + }, + { + "gav": "ll_observation.sizeMeasure", + "selectedSql": "SELECT %s FROM ll_observation.sizeMeasure sizeMeasure WHERE sizeMeasure.catch %s", + "insertSql": "INSERT INTO ll_observation.sizeMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,size,sizemeasuretype,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.weightMeasure", + "selectedSql": "SELECT %s FROM ll_observation.weightMeasure weightMeasure WHERE weightMeasure.catch %s", + "insertSql": "INSERT INTO ll_observation.weightMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,topiacreatedate,topiaversion,weight,weightmeasuretype" + }, + { + "gav": "ll_observation.catch_predator", + "selectedSql": "SELECT %s FROM ll_observation.catch_predator WHERE catch_predator.catch %s", + "insertSql": "INSERT INTO ll_observation.catch_predator(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "catch,species", + "columnsToReplace": "catch" + } + ], + "fr.ird.observe.entities.data.ll.observation.Encounter": [ + { + "gav": "ll_observation.encounter", + "selectedSql": "SELECT %s FROM ll_observation.encounter WHERE encounter.topiaId %s", + "insertSql": "INSERT INTO ll_observation.encounter(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,count,distance,encountertype,homeid,lastupdatedate,species,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.FloatlinesComposition": [ + { + "gav": "ll_observation.floatlinesComposition", + "selectedSql": "SELECT %s FROM ll_observation.floatlinesComposition WHERE floatlinesComposition.topiaId %s", + "insertSql": "INSERT INTO ll_observation.floatlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,linetype,proportion,set,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.HooksComposition": [ + { + "gav": "ll_observation.hooksComposition", + "selectedSql": "SELECT %s FROM ll_observation.hooksComposition WHERE hooksComposition.topiaId %s", + "insertSql": "INSERT INTO ll_observation.hooksComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,hookoffset,hooksize,hooktype,lastupdatedate,proportion,set,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.Section": [ + { + "gav": "ll_observation.section", + "selectedSql": "SELECT %s FROM ll_observation.section WHERE section.topiaId %s", + "insertSql": "INSERT INTO ll_observation.section(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,haulingidentifier,homeid,lastupdatedate,set,settingidentifier,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ll_observation.basket", + "selectedSql": "SELECT %s FROM ll_observation.basket basket WHERE basket.section %s", + "insertSql": "INSERT INTO ll_observation.basket(%s) VALUES (%%s);", + "parentColumnName": "section", + "columnNames": "topiaid,floatline1length,floatline2length,haulingidentifier,homeid,lastupdatedate,section,settingidentifier,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.branchline", + "selectedSql": "SELECT %s FROM ll_observation.branchline branchline INNER JOIN ll_observation.basket basket ON basket.topiaId = branchline.basket WHERE basket.section %s", + "insertSql": "INSERT INTO ll_observation.branchline(%s) VALUES (%%s);", + "parentColumnName": "basket", + "columnNames": "topiaid,baithaulingstatus,baitsettingstatus,baittype,basket,branchlinelength,comment,depthrecorder,haulingidentifier,homeid,hooklost,hookoffset,hooksize,hooktype,lastupdatedate,settingidentifier,snapweight,swivelweight,timer,timertimeonboard,timesincecontact,topiacreatedate,topiaversion,toptype,tracecutoff,tracelinelength,tracelinetype,weightedsnap,weightedswivel" + } + ], + "fr.ird.observe.entities.data.ll.observation.SensorUsed": [ + { + "gav": "ll_observation.sensorUsed", + "selectedSql": "SELECT %s FROM ll_observation.sensorUsed WHERE sensorUsed.topiaId %s", + "insertSql": "INSERT INTO ll_observation.sensorUsed(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,data,datafilename,datalocation,homeid,lastupdatedate,sensorbrand,sensordataformat,sensorserialno,sensortype,topiacreatedate,topiaversion", + "useBlob": true, + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.Set": [ + { + "gav": "ll_observation.set", + "selectedSql": "SELECT %s FROM ll_observation.set WHERE set.topiaId %s", + "insertSql": "INSERT INTO ll_observation.set(%s) VALUES (%%s);", + "updateReverseAssociationSql": "UPDATE ll_observation.activity activity SET activity.set = '%s' WHERE activity.topiaId = '%s'", + "columnNames": "topiaid,basketspersectioncount,branchlinesperbasketcount,comment,haulingbreaks,haulingdirectionsameassetting,haulingendlatitude,haulingendlongitude,haulingendtimestamp,haulingstartlatitude,haulingstartlongitude,haulingstarttimestamp,homeid,lastupdatedate,lightstickscolor,lightsticksperbasketcount,lightstickstype,linetype,maxdepthtargeted,monitored,number,settingendlatitude,settingendlongitude,settingendtimestamp,settingshape,settingstartlatitude,settingstartlongitude,settingstarttimestamp,settingvesselspeed,shooterspeed,shooterused,snapweight,swivelweight,timebetweenhooks,topiacreatedate,topiaversion,totalbasketscount,totalhookscount,totalsectionscount,weightedsnap,weightedswivel", + "entryPoint": true + }, + { + "gav": "ll_observation.baitsComposition", + "selectedSql": "SELECT %s FROM ll_observation.baitsComposition baitsComposition WHERE baitsComposition.set %s", + "insertSql": "INSERT INTO ll_observation.baitsComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,baitsettingstatus,baittype,homeid,individualsize,individualweight,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.branchlinesComposition", + "selectedSql": "SELECT %s FROM ll_observation.branchlinesComposition branchlinesComposition WHERE branchlinesComposition.set %s", + "insertSql": "INSERT INTO ll_observation.branchlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,proportion,set,topiacreatedate,topiaversion,toptype,tracelinelength,tracelinetype" + }, + { + "gav": "ll_observation.floatlinesComposition", + "selectedSql": "SELECT %s FROM ll_observation.floatlinesComposition floatlinesComposition WHERE floatlinesComposition.set %s", + "insertSql": "INSERT INTO ll_observation.floatlinesComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,length,linetype,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.hooksComposition", + "selectedSql": "SELECT %s FROM ll_observation.hooksComposition hooksComposition WHERE hooksComposition.set %s", + "insertSql": "INSERT INTO ll_observation.hooksComposition(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,hookoffset,hooksize,hooktype,lastupdatedate,proportion,set,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.section", + "selectedSql": "SELECT %s FROM ll_observation.section section WHERE section.set %s", + "insertSql": "INSERT INTO ll_observation.section(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,haulingidentifier,homeid,lastupdatedate,set,settingidentifier,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.basket", + "selectedSql": "SELECT %s FROM ll_observation.basket basket INNER JOIN ll_observation.section section ON section.topiaId = basket.section WHERE section.set %s", + "insertSql": "INSERT INTO ll_observation.basket(%s) VALUES (%%s);", + "parentColumnName": "section", + "columnNames": "topiaid,floatline1length,floatline2length,haulingidentifier,homeid,lastupdatedate,section,settingidentifier,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.branchline", + "selectedSql": "SELECT %s FROM ll_observation.branchline branchline INNER JOIN ll_observation.basket basket ON basket.topiaId = branchline.basket INNER JOIN ll_observation.section section ON section.topiaId = basket.section WHERE section.set %s", + "insertSql": "INSERT INTO ll_observation.branchline(%s) VALUES (%%s);", + "parentColumnName": "basket", + "columnNames": "topiaid,baithaulingstatus,baitsettingstatus,baittype,basket,branchlinelength,comment,depthrecorder,haulingidentifier,homeid,hooklost,hookoffset,hooksize,hooktype,lastupdatedate,settingidentifier,snapweight,swivelweight,timer,timertimeonboard,timesincecontact,topiacreatedate,topiaversion,toptype,tracecutoff,tracelinelength,tracelinetype,weightedsnap,weightedswivel" + }, + { + "gav": "ll_observation.tdr", + "selectedSql": "SELECT %s FROM ll_observation.tdr tdr WHERE tdr.set %s", + "insertSql": "INSERT INTO ll_observation.tdr(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,basket,branchline,data,datafilename,datalocation,deploymentend,deploymentstart,fishingend,fishingenddepth,fishingstart,fishingstartdepth,floatline1length,floatline2length,homeid,itemhorizontalposition,itemverticalposition,lastupdatedate,maxfishingdepth,meandeploymentdepth,meanfishingdepth,mediandeploymentdepth,medianfishingdepth,minfishingdepth,section,sensorbrand,serialno,set,topiacreatedate,topiaversion", + "columnsToReplace": "section,basket,branchline", + "useBlob": true + }, + { + "gav": "ll_observation.catch", + "selectedSql": "SELECT %s FROM ll_observation.catch catch WHERE catch.set %s", + "insertSql": "INSERT INTO ll_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,basket,beatdiameter,branchline,catchfate,catchhealthstatus,comment,count,depredated,discardhealthstatus,gonadeweight,homeid,hookposition,hookwhendiscarded,lastupdatedate,maturitystatus,number,photoreferences,section,set,set_idx,sex,species,stomachfullness,tagnumber,topiacreatedate,topiaversion,totalweight,weightmeasuremethod", + "columnsToReplace": "section,basket,branchline" + }, + { + "gav": "ll_observation.sizeMeasure", + "selectedSql": "SELECT %s FROM ll_observation.sizeMeasure sizeMeasure INNER JOIN ll_observation.catch catch ON catch.topiaId = sizeMeasure.catch WHERE catch.set %s", + "insertSql": "INSERT INTO ll_observation.sizeMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,size,sizemeasuretype,topiacreatedate,topiaversion" + }, + { + "gav": "ll_observation.weightMeasure", + "selectedSql": "SELECT %s FROM ll_observation.weightMeasure weightMeasure INNER JOIN ll_observation.catch catch ON catch.topiaId = weightMeasure.catch WHERE catch.set %s", + "insertSql": "INSERT INTO ll_observation.weightMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,topiacreatedate,topiaversion,weight,weightmeasuretype" + }, + { + "gav": "ll_observation.set_mitigationtype", + "selectedSql": "SELECT %s FROM ll_observation.set_mitigationtype WHERE set_mitigationtype.set %s", + "insertSql": "INSERT INTO ll_observation.set_mitigationtype(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "mitigationtype,set", + "columnsToReplace": "set" + }, + { + "gav": "ll_observation.tdr_species", + "selectedSql": "SELECT %s FROM ll_observation.tdr_species INNER JOIN ll_observation.tdr tdr ON tdr_species.tdr = tdr.topiaId WHERE tdr.set %s", + "insertSql": "INSERT INTO ll_observation.tdr_species(%s) VALUES (%%s);", + "parentColumnName": "tdr", + "columnNames": "species,tdr", + "columnsToReplace": "tdr" + }, + { + "gav": "ll_observation.catch_predator", + "selectedSql": "SELECT %s FROM ll_observation.catch_predator INNER JOIN ll_observation.catch catch ON catch_predator.catch = catch.topiaId WHERE catch.set %s", + "insertSql": "INSERT INTO ll_observation.catch_predator(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "catch,species", + "columnsToReplace": "catch" + } + ], + "fr.ird.observe.entities.data.ll.observation.SizeMeasure": [ + { + "gav": "ll_observation.sizeMeasure", + "selectedSql": "SELECT %s FROM ll_observation.sizeMeasure WHERE sizeMeasure.topiaId %s", + "insertSql": "INSERT INTO ll_observation.sizeMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,size,sizemeasuretype,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ll.observation.Tdr": [ + { + "gav": "ll_observation.tdr", + "selectedSql": "SELECT %s FROM ll_observation.tdr WHERE tdr.topiaId %s", + "insertSql": "INSERT INTO ll_observation.tdr(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,basket,branchline,data,datafilename,datalocation,deploymentend,deploymentstart,fishingend,fishingenddepth,fishingstart,fishingstartdepth,floatline1length,floatline2length,homeid,itemhorizontalposition,itemverticalposition,lastupdatedate,maxfishingdepth,meandeploymentdepth,meanfishingdepth,mediandeploymentdepth,medianfishingdepth,minfishingdepth,section,sensorbrand,serialno,set,topiacreatedate,topiaversion", + "columnsToDetach": "section~ll_observation.section,basket~ll_observation.basket,branchline~ll_observation.branchline", + "useBlob": true, + "entryPoint": true + }, + { + "gav": "ll_observation.tdr_species", + "selectedSql": "SELECT %s FROM ll_observation.tdr_species WHERE tdr_species.tdr %s", + "insertSql": "INSERT INTO ll_observation.tdr_species(%s) VALUES (%%s);", + "parentColumnName": "tdr", + "columnNames": "species,tdr", + "columnsToReplace": "tdr" + } + ], + "fr.ird.observe.entities.data.ll.observation.WeightMeasure": [ + { + "gav": "ll_observation.weightMeasure", + "selectedSql": "SELECT %s FROM ll_observation.weightMeasure WHERE weightMeasure.topiaId %s", + "insertSql": "INSERT INTO ll_observation.weightMeasure(%s) VALUES (%%s);", + "parentColumnName": "catch", + "columnNames": "topiaid,catch,homeid,lastupdatedate,topiacreatedate,topiaversion,weight,weightmeasuretype", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.common.GearUseFeatures": [ + { + "gav": "ps_common.gearUseFeatures", + "selectedSql": "SELECT %s FROM ps_common.gearUseFeatures WHERE gearUseFeatures.topiaId %s", + "insertSql": "INSERT INTO ps_common.gearUseFeatures(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,gear,homeid,lastupdatedate,number,topiacreatedate,topiaversion,trip,usedintrip", + "entryPoint": true + }, + { + "gav": "ps_common.gearUseFeaturesMeasurement", + "selectedSql": "SELECT %s FROM ps_common.gearUseFeaturesMeasurement gearUseFeaturesMeasurement WHERE gearUseFeaturesMeasurement.gearUseFeatures %s", + "insertSql": "INSERT INTO ps_common.gearUseFeaturesMeasurement(%s) VALUES (%%s);", + "parentColumnName": "gearUseFeatures", + "columnNames": "topiaid,gearcharacteristic,gearusefeatures,homeid,lastupdatedate,measurementvalue,topiacreatedate,topiaversion" + } + ], + "fr.ird.observe.entities.data.ps.common.GearUseFeaturesMeasurement": [ + { + "gav": "ps_common.gearUseFeaturesMeasurement", + "selectedSql": "SELECT %s FROM ps_common.gearUseFeaturesMeasurement WHERE gearUseFeaturesMeasurement.topiaId %s", + "insertSql": "INSERT INTO ps_common.gearUseFeaturesMeasurement(%s) VALUES (%%s);", + "parentColumnName": "gearUseFeatures", + "columnNames": "topiaid,gearcharacteristic,gearusefeatures,homeid,lastupdatedate,measurementvalue,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.landing.Landing": [ + { + "gav": "ps_landing.landing", + "selectedSql": "SELECT %s FROM ps_landing.landing WHERE landing.topiaId %s", + "insertSql": "INSERT INTO ps_landing.landing(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,date,destination,fate,fatevessel,homeid,lastupdatedate,species,topiacreatedate,topiaversion,trip,trip_idx,weight,weightcategory", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.localmarket.Batch": [ + { + "gav": "ps_localmarket.batch", + "selectedSql": "SELECT %s FROM ps_localmarket.batch WHERE batch.topiaId %s", + "insertSql": "INSERT INTO ps_localmarket.batch(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,count,date,homeid,lastupdatedate,origin,packaging,species,survey,topiacreatedate,topiaversion,trip,weight,weightcomputedsource", + "columnsToDetach": "survey~ps_localmarket.survey", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.localmarket.Sample": [ + { + "gav": "ps_localmarket.sample", + "selectedSql": "SELECT %s FROM ps_localmarket.sample WHERE sample.topiaId %s", + "insertSql": "INSERT INTO ps_localmarket.sample(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,date,homeid,lastupdatedate,number,sampletype,topiacreatedate,topiaversion,trip", + "entryPoint": true + }, + { + "gav": "ps_localmarket.sampleSpecies", + "selectedSql": "SELECT %s FROM ps_localmarket.sampleSpecies sampleSpecies WHERE sampleSpecies.sample %s", + "insertSql": "INSERT INTO ps_localmarket.sampleSpecies(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,comment,homeid,lastupdatedate,measuredcount,sample,sizemeasuretype,species,topiacreatedate,topiaversion" + }, + { + "gav": "ps_localmarket.sampleSpeciesMeasure", + "selectedSql": "SELECT %s FROM ps_localmarket.sampleSpeciesMeasure sampleSpeciesMeasure INNER JOIN ps_localmarket.sampleSpecies sampleSpecies ON sampleSpecies.topiaId = sampleSpeciesMeasure.sampleSpecies WHERE sampleSpecies.sample %s", + "insertSql": "INSERT INTO ps_localmarket.sampleSpeciesMeasure(%s) VALUES (%%s);", + "parentColumnName": "sampleSpecies", + "columnNames": "topiaid,count,homeid,lastupdatedate,samplespecies,sizeclass,topiacreatedate,topiaversion" + }, + { + "gav": "ps_localmarket.sample_well", + "selectedSql": "SELECT %s FROM ps_localmarket.sample_well WHERE sample_well.sample %s", + "insertSql": "INSERT INTO ps_localmarket.sample_well(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "sample,well", + "columnsToReplace": "sample" + } + ], + "fr.ird.observe.entities.data.ps.localmarket.SampleSpecies": [ + { + "gav": "ps_localmarket.sampleSpecies", + "selectedSql": "SELECT %s FROM ps_localmarket.sampleSpecies WHERE sampleSpecies.topiaId %s", + "insertSql": "INSERT INTO ps_localmarket.sampleSpecies(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,comment,homeid,lastupdatedate,measuredcount,sample,sizemeasuretype,species,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ps_localmarket.sampleSpeciesMeasure", + "selectedSql": "SELECT %s FROM ps_localmarket.sampleSpeciesMeasure sampleSpeciesMeasure WHERE sampleSpeciesMeasure.sampleSpecies %s", + "insertSql": "INSERT INTO ps_localmarket.sampleSpeciesMeasure(%s) VALUES (%%s);", + "parentColumnName": "sampleSpecies", + "columnNames": "topiaid,count,homeid,lastupdatedate,samplespecies,sizeclass,topiacreatedate,topiaversion" + } + ], + "fr.ird.observe.entities.data.ps.localmarket.SampleSpeciesMeasure": [ + { + "gav": "ps_localmarket.sampleSpeciesMeasure", + "selectedSql": "SELECT %s FROM ps_localmarket.sampleSpeciesMeasure WHERE sampleSpeciesMeasure.topiaId %s", + "insertSql": "INSERT INTO ps_localmarket.sampleSpeciesMeasure(%s) VALUES (%%s);", + "parentColumnName": "sampleSpecies", + "columnNames": "topiaid,count,homeid,lastupdatedate,samplespecies,sizeclass,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.localmarket.Survey": [ + { + "gav": "ps_localmarket.survey", + "selectedSql": "SELECT %s FROM ps_localmarket.survey WHERE survey.topiaId %s", + "insertSql": "INSERT INTO ps_localmarket.survey(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,date,homeid,lastupdatedate,number,topiacreatedate,topiaversion,trip", + "entryPoint": true + }, + { + "gav": "ps_localmarket.surveyPart", + "selectedSql": "SELECT %s FROM ps_localmarket.surveyPart surveyPart WHERE surveyPart.survey %s", + "insertSql": "INSERT INTO ps_localmarket.surveyPart(%s) VALUES (%%s);", + "parentColumnName": "survey", + "columnNames": "topiaid,homeid,lastupdatedate,proportion,species,survey,topiacreatedate,topiaversion" + } + ], + "fr.ird.observe.entities.data.ps.localmarket.SurveyPart": [ + { + "gav": "ps_localmarket.surveyPart", + "selectedSql": "SELECT %s FROM ps_localmarket.surveyPart WHERE surveyPart.topiaId %s", + "insertSql": "INSERT INTO ps_localmarket.surveyPart(%s) VALUES (%%s);", + "parentColumnName": "survey", + "columnNames": "topiaid,homeid,lastupdatedate,proportion,species,survey,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.logbook.Activity": [ + { + "gav": "ps_logbook.activity", + "selectedSql": "SELECT %s FROM ps_logbook.activity WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.activity(%s) VALUES (%%s);", + "parentColumnName": "route", + "columnNames": "topiaid,comment,currentdirection,currentspeed,dataquality,fpazone,homeid,informationsource,lastupdatedate,latitude,latitudeoriginal,longitude,longitudeoriginal,number,originaldatamodified,positioncorrected,reasonfornofishing,reasonfornullset,relatedobservedactivity,route,schooltype,seasurfacetemperature,setcount,setsuccessstatus,time,topiacreatedate,topiaversion,totalweight,vesselactivity,vmsdivergent,wind,winddirection", + "columnsToDetach": "relatedObservedActivity~ps_observation.activity", + "entryPoint": true + }, + { + "gav": "ps_logbook.catch", + "selectedSql": "SELECT %s FROM ps_logbook.catch catch WHERE catch.activity %s", + "insertSql": "INSERT INTO ps_logbook.catch(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,activity_idx,comment,count,homeid,lastupdatedate,species,speciesfate,topiacreatedate,topiaversion,weight,weightcategory,weightmeasuremethod,well" + }, + { + "gav": "ps_logbook.floatingObject", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObject floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_logbook.floatingObject(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,comment,computedwhenarrivingbiodegradable,computedwhenarrivingnonentangling,computedwhenarrivingsimplifiedobjecttype,computedwhenleavingbiodegradable,computedwhenleavingnonentangling,computedwhenleavingsimplifiedobjecttype,homeid,lastupdatedate,objectoperation,supportvesselname,topiacreatedate,topiaversion" + }, + { + "gav": "ps_logbook.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObjectPart floatingObjectPart INNER JOIN ps_logbook.floatingObject floatingObject ON floatingObject.topiaId = floatingObjectPart.floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_logbook.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving" + }, + { + "gav": "ps_logbook.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_logbook.transmittingBuoy transmittingBuoy INNER JOIN ps_logbook.floatingObject floatingObject ON floatingObject.topiaId = transmittingBuoy.floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_logbook.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel" + }, + { + "gav": "ps_logbook.activity_observedsystem", + "selectedSql": "SELECT %s FROM ps_logbook.activity_observedsystem WHERE activity_observedsystem.activity %s", + "insertSql": "INSERT INTO ps_logbook.activity_observedsystem(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "activity,observedsystem", + "columnsToReplace": "activity" + } + ], + "fr.ird.observe.entities.data.ps.logbook.Catch": [ + { + "gav": "ps_logbook.catch", + "selectedSql": "SELECT %s FROM ps_logbook.catch WHERE catch.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.catch(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,activity_idx,comment,count,homeid,lastupdatedate,species,speciesfate,topiacreatedate,topiaversion,weight,weightcategory,weightmeasuremethod,well", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.logbook.FloatingObject": [ + { + "gav": "ps_logbook.floatingObject", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObject WHERE floatingObject.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.floatingObject(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,comment,computedwhenarrivingbiodegradable,computedwhenarrivingnonentangling,computedwhenarrivingsimplifiedobjecttype,computedwhenleavingbiodegradable,computedwhenleavingnonentangling,computedwhenleavingsimplifiedobjecttype,homeid,lastupdatedate,objectoperation,supportvesselname,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ps_logbook.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObjectPart floatingObjectPart WHERE floatingObjectPart.floatingObject %s", + "insertSql": "INSERT INTO ps_logbook.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving" + }, + { + "gav": "ps_logbook.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_logbook.transmittingBuoy transmittingBuoy WHERE transmittingBuoy.floatingObject %s", + "insertSql": "INSERT INTO ps_logbook.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel" + } + ], + "fr.ird.observe.entities.data.ps.logbook.FloatingObjectPart": [ + { + "gav": "ps_logbook.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObjectPart WHERE floatingObjectPart.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.logbook.Route": [ + { + "gav": "ps_logbook.route", + "selectedSql": "SELECT %s FROM ps_logbook.route WHERE route.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.route(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,date,fishingtime,homeid,lastupdatedate,timeatsea,topiacreatedate,topiaversion,trip", + "entryPoint": true + }, + { + "gav": "ps_logbook.activity", + "selectedSql": "SELECT %s FROM ps_logbook.activity activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_logbook.activity(%s) VALUES (%%s);", + "parentColumnName": "route", + "columnNames": "topiaid,comment,currentdirection,currentspeed,dataquality,fpazone,homeid,informationsource,lastupdatedate,latitude,latitudeoriginal,longitude,longitudeoriginal,number,originaldatamodified,positioncorrected,reasonfornofishing,reasonfornullset,relatedobservedactivity,route,schooltype,seasurfacetemperature,setcount,setsuccessstatus,time,topiacreatedate,topiaversion,totalweight,vesselactivity,vmsdivergent,wind,winddirection", + "columnsToDetach": "relatedObservedActivity~ps_observation.activity" + }, + { + "gav": "ps_logbook.catch", + "selectedSql": "SELECT %s FROM ps_logbook.catch catch INNER JOIN ps_logbook.activity activity ON activity.topiaId = catch.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_logbook.catch(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,activity_idx,comment,count,homeid,lastupdatedate,species,speciesfate,topiacreatedate,topiaversion,weight,weightcategory,weightmeasuremethod,well" + }, + { + "gav": "ps_logbook.floatingObject", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObject floatingObject INNER JOIN ps_logbook.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_logbook.floatingObject(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,comment,computedwhenarrivingbiodegradable,computedwhenarrivingnonentangling,computedwhenarrivingsimplifiedobjecttype,computedwhenleavingbiodegradable,computedwhenleavingnonentangling,computedwhenleavingsimplifiedobjecttype,homeid,lastupdatedate,objectoperation,supportvesselname,topiacreatedate,topiaversion" + }, + { + "gav": "ps_logbook.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_logbook.floatingObjectPart floatingObjectPart INNER JOIN ps_logbook.floatingObject floatingObject ON floatingObject.topiaId = floatingObjectPart.floatingObject INNER JOIN ps_logbook.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_logbook.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving" + }, + { + "gav": "ps_logbook.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_logbook.transmittingBuoy transmittingBuoy INNER JOIN ps_logbook.floatingObject floatingObject ON floatingObject.topiaId = transmittingBuoy.floatingObject INNER JOIN ps_logbook.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_logbook.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel" + }, + { + "gav": "ps_logbook.activity_observedsystem", + "selectedSql": "SELECT %s FROM ps_logbook.activity_observedsystem INNER JOIN ps_logbook.activity activity ON activity_observedsystem.activity = activity.topiaId WHERE activity.route %s", + "insertSql": "INSERT INTO ps_logbook.activity_observedsystem(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "activity,observedsystem", + "columnsToReplace": "activity" + } + ], + "fr.ird.observe.entities.data.ps.logbook.Sample": [ + { + "gav": "ps_logbook.sample", + "selectedSql": "SELECT %s FROM ps_logbook.sample WHERE sample.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.sample(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,bigsweight,comment,homeid,lastupdatedate,number,samplequality,sampletype,smallsweight,supersample,topiacreatedate,topiaversion,totalweight,trip,well", + "entryPoint": true + }, + { + "gav": "ps_logbook.sampleActivity", + "selectedSql": "SELECT %s FROM ps_logbook.sampleActivity sampleActivity WHERE sampleActivity.sample %s", + "insertSql": "INSERT INTO ps_logbook.sampleActivity(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,activity,homeid,lastupdatedate,sample,topiacreatedate,topiaversion,weightedweight", + "columnsToDetach": "activity~ps_logbook.activity" + }, + { + "gav": "ps_logbook.sampleSpecies", + "selectedSql": "SELECT %s FROM ps_logbook.sampleSpecies sampleSpecies WHERE sampleSpecies.sample %s", + "insertSql": "INSERT INTO ps_logbook.sampleSpecies(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,comment,endtime,homeid,lastupdatedate,measuredcount,sample,sample_idx,sizemeasuretype,species,starttime,subsamplenumber,topiacreatedate,topiaversion,totalcount" + }, + { + "gav": "ps_logbook.sampleSpeciesMeasure", + "selectedSql": "SELECT %s FROM ps_logbook.sampleSpeciesMeasure sampleSpeciesMeasure INNER JOIN ps_logbook.sampleSpecies sampleSpecies ON sampleSpecies.topiaId = sampleSpeciesMeasure.sampleSpecies WHERE sampleSpecies.sample %s", + "insertSql": "INSERT INTO ps_logbook.sampleSpeciesMeasure(%s) VALUES (%%s);", + "parentColumnName": "sampleSpecies", + "columnNames": "topiaid,count,homeid,lastupdatedate,samplespecies,sizeclass,topiacreatedate,topiaversion" + }, + { + "gav": "ps_logbook.sample_person", + "selectedSql": "SELECT %s FROM ps_logbook.sample_person WHERE sample_person.sample %s", + "insertSql": "INSERT INTO ps_logbook.sample_person(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "person,sample", + "columnsToReplace": "sample" + } + ], + "fr.ird.observe.entities.data.ps.logbook.SampleActivity": [ + { + "gav": "ps_logbook.sampleActivity", + "selectedSql": "SELECT %s FROM ps_logbook.sampleActivity WHERE sampleActivity.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.sampleActivity(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,activity,homeid,lastupdatedate,sample,topiacreatedate,topiaversion,weightedweight", + "columnsToDetach": "activity~ps_logbook.activity", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.logbook.SampleSpecies": [ + { + "gav": "ps_logbook.sampleSpecies", + "selectedSql": "SELECT %s FROM ps_logbook.sampleSpecies WHERE sampleSpecies.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.sampleSpecies(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,comment,endtime,homeid,lastupdatedate,measuredcount,sample,sample_idx,sizemeasuretype,species,starttime,subsamplenumber,topiacreatedate,topiaversion,totalcount", + "entryPoint": true + }, + { + "gav": "ps_logbook.sampleSpeciesMeasure", + "selectedSql": "SELECT %s FROM ps_logbook.sampleSpeciesMeasure sampleSpeciesMeasure WHERE sampleSpeciesMeasure.sampleSpecies %s", + "insertSql": "INSERT INTO ps_logbook.sampleSpeciesMeasure(%s) VALUES (%%s);", + "parentColumnName": "sampleSpecies", + "columnNames": "topiaid,count,homeid,lastupdatedate,samplespecies,sizeclass,topiacreatedate,topiaversion" + } + ], + "fr.ird.observe.entities.data.ps.logbook.SampleSpeciesMeasure": [ + { + "gav": "ps_logbook.sampleSpeciesMeasure", + "selectedSql": "SELECT %s FROM ps_logbook.sampleSpeciesMeasure WHERE sampleSpeciesMeasure.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.sampleSpeciesMeasure(%s) VALUES (%%s);", + "parentColumnName": "sampleSpecies", + "columnNames": "topiaid,count,homeid,lastupdatedate,samplespecies,sizeclass,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.logbook.TransmittingBuoy": [ + { + "gav": "ps_logbook.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_logbook.transmittingBuoy WHERE transmittingBuoy.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.logbook.WellPlan": [ + { + "gav": "ps_logbook.wellPlan", + "selectedSql": "SELECT %s FROM ps_logbook.wellPlan WHERE wellPlan.topiaId %s", + "insertSql": "INSERT INTO ps_logbook.wellPlan(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,activity,homeid,lastupdatedate,species,topiacreatedate,topiaversion,trip,trip_idx,weight,weightcategory,well,wellsamplingconformity,wellsamplingstatus", + "columnsToDetach": "activity~ps_logbook.activity", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.Activity": [ + { + "gav": "ps_observation.set", + "selectedSql": "SELECT %s FROM ps_observation.set set INNER JOIN ps_observation.activity activity ON activity.set = set.topiaId WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.set(%s) VALUES (%%s);", + "columnNames": "topiaid,comment,currentdirection,currentmeasuredepth,currentspeed,endtimestamp,haulingendtimestamp,haulingstarttimestamp,homeid,lastupdatedate,maxgeardepth,reasonfornullset,schoolmeandepth,schoolthickness,schooltopdepth,schooltype,starttime,supportvesselname,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.activity", + "selectedSql": "SELECT %s FROM ps_observation.activity WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.activity(%s) VALUES (%%s);", + "parentColumnName": "route", + "columnNames": "topiaid,comment,currentfpazone,dataquality,detectionmode,ersid,homeid,lastupdatedate,latitude,longitude,nextfpazone,observedsystemdistance,previousfpazone,reasonfornofishing,route,seasurfacetemperature,set,surroundingactivity,time,topiacreatedate,topiaversion,vesselactivity,vesselspeed,wind", + "columnsToReplace": "set", + "entryPoint": true + }, + { + "gav": "ps_observation.catch", + "selectedSql": "SELECT %s FROM ps_observation.catch catch INNER JOIN ps_observation.activity activity ON activity.set = catch.set INNER JOIN ps_observation.route route ON route.topiaId = activity.route WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,catchweight,catchweightcomputedsource,comment,homeid,informationsource,lastupdatedate,lengthmeasuremethod,meanlength,meanlengthcomputedsource,meanweight,meanweightcomputedsource,reasonfordiscard,set,set_idx,species,speciesfate,topiacreatedate,topiaversion,totalcount,totalcountcomputedsource,weightmeasuremethod,well" + }, + { + "gav": "ps_observation.floatingObject", + "selectedSql": "SELECT %s FROM ps_observation.floatingObject floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_observation.floatingObject(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,comment,computedwhenarrivingbiodegradable,computedwhenarrivingnonentangling,computedwhenarrivingsimplifiedobjecttype,computedwhenleavingbiodegradable,computedwhenleavingnonentangling,computedwhenleavingsimplifiedobjecttype,homeid,lastupdatedate,objectoperation,supportvesselname,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_observation.floatingObjectPart floatingObjectPart INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = floatingObjectPart.floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_observation.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving" + }, + { + "gav": "ps_observation.nonTargetCatchRelease", + "selectedSql": "SELECT %s FROM ps_observation.nonTargetCatchRelease nonTargetCatchRelease INNER JOIN ps_observation.activity activity ON activity.set = nonTargetCatchRelease.set INNER JOIN ps_observation.route route ON route.topiaId = activity.route WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.nonTargetCatchRelease(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,comment,conformity,count,homeid,lastupdatedate,length,lengthmeasuremethod,releasingtime,set,set_idx,sex,species,speciesgroupreleasemode,status,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.objectObservedSpecies", + "selectedSql": "SELECT %s FROM ps_observation.objectObservedSpecies objectObservedSpecies INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = objectObservedSpecies.floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_observation.objectObservedSpecies(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,count,floatingobject,homeid,lastupdatedate,species,speciesstatus,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.objectSchoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.objectSchoolEstimate objectSchoolEstimate INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = objectSchoolEstimate.floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_observation.objectSchoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ps_observation.schoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.schoolEstimate schoolEstimate INNER JOIN ps_observation.activity activity ON activity.set = schoolEstimate.set INNER JOIN ps_observation.route route ON route.topiaId = activity.route WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.schoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,meanweight,set,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ps_observation.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_observation.transmittingBuoy transmittingBuoy INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = transmittingBuoy.floatingObject WHERE floatingObject.activity %s", + "insertSql": "INSERT INTO ps_observation.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel" + }, + { + "gav": "ps_observation.sample", + "selectedSql": "SELECT %s FROM ps_observation.sample sample INNER JOIN ps_observation.activity activity ON activity.set = sample.set INNER JOIN ps_observation.route route ON route.topiaId = activity.route WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.sample(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,comment,homeid,lastupdatedate,set,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.sampleMeasure", + "selectedSql": "SELECT %s FROM ps_observation.sampleMeasure sampleMeasure INNER JOIN ps_observation.sample sample ON sample.topiaId = sampleMeasure.sample INNER JOIN ps_observation.activity activity ON activity.set = sample.set INNER JOIN ps_observation.route route ON route.topiaId = activity.route WHERE activity.topiaId %s", + "insertSql": "INSERT INTO ps_observation.sampleMeasure(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,islengthcomputed,isweightcomputed,lastupdatedate,length,lengthmeasuremethod,picturesreferences,sample,sample_idx,sex,sizemeasuretype,species,speciesfate,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype" + }, + { + "gav": "ps_observation.activity_observedsystem", + "selectedSql": "SELECT %s FROM ps_observation.activity_observedsystem WHERE activity_observedsystem.activity %s", + "insertSql": "INSERT INTO ps_observation.activity_observedsystem(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "activity,observedsystem", + "columnsToReplace": "activity" + } + ], + "fr.ird.observe.entities.data.ps.observation.Catch": [ + { + "gav": "ps_observation.catch", + "selectedSql": "SELECT %s FROM ps_observation.catch WHERE catch.topiaId %s", + "insertSql": "INSERT INTO ps_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,catchweight,catchweightcomputedsource,comment,homeid,informationsource,lastupdatedate,lengthmeasuremethod,meanlength,meanlengthcomputedsource,meanweight,meanweightcomputedsource,reasonfordiscard,set,set_idx,species,speciesfate,topiacreatedate,topiaversion,totalcount,totalcountcomputedsource,weightmeasuremethod,well", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.FloatingObject": [ + { + "gav": "ps_observation.floatingObject", + "selectedSql": "SELECT %s FROM ps_observation.floatingObject WHERE floatingObject.topiaId %s", + "insertSql": "INSERT INTO ps_observation.floatingObject(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,comment,computedwhenarrivingbiodegradable,computedwhenarrivingnonentangling,computedwhenarrivingsimplifiedobjecttype,computedwhenleavingbiodegradable,computedwhenleavingnonentangling,computedwhenleavingsimplifiedobjecttype,homeid,lastupdatedate,objectoperation,supportvesselname,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ps_observation.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_observation.floatingObjectPart floatingObjectPart WHERE floatingObjectPart.floatingObject %s", + "insertSql": "INSERT INTO ps_observation.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving" + }, + { + "gav": "ps_observation.objectObservedSpecies", + "selectedSql": "SELECT %s FROM ps_observation.objectObservedSpecies objectObservedSpecies WHERE objectObservedSpecies.floatingObject %s", + "insertSql": "INSERT INTO ps_observation.objectObservedSpecies(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,count,floatingobject,homeid,lastupdatedate,species,speciesstatus,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.objectSchoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.objectSchoolEstimate objectSchoolEstimate WHERE objectSchoolEstimate.floatingObject %s", + "insertSql": "INSERT INTO ps_observation.objectSchoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ps_observation.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_observation.transmittingBuoy transmittingBuoy WHERE transmittingBuoy.floatingObject %s", + "insertSql": "INSERT INTO ps_observation.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel" + } + ], + "fr.ird.observe.entities.data.ps.observation.FloatingObjectPart": [ + { + "gav": "ps_observation.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_observation.floatingObjectPart WHERE floatingObjectPart.topiaId %s", + "insertSql": "INSERT INTO ps_observation.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.NonTargetCatchRelease": [ + { + "gav": "ps_observation.nonTargetCatchRelease", + "selectedSql": "SELECT %s FROM ps_observation.nonTargetCatchRelease WHERE nonTargetCatchRelease.topiaId %s", + "insertSql": "INSERT INTO ps_observation.nonTargetCatchRelease(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,comment,conformity,count,homeid,lastupdatedate,length,lengthmeasuremethod,releasingtime,set,set_idx,sex,species,speciesgroupreleasemode,status,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.ObjectObservedSpecies": [ + { + "gav": "ps_observation.objectObservedSpecies", + "selectedSql": "SELECT %s FROM ps_observation.objectObservedSpecies WHERE objectObservedSpecies.topiaId %s", + "insertSql": "INSERT INTO ps_observation.objectObservedSpecies(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,count,floatingobject,homeid,lastupdatedate,species,speciesstatus,topiacreatedate,topiaversion", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.ObjectSchoolEstimate": [ + { + "gav": "ps_observation.objectSchoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.objectSchoolEstimate WHERE objectSchoolEstimate.topiaId %s", + "insertSql": "INSERT INTO ps_observation.objectSchoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.Route": [ + { + "gav": "ps_observation.route", + "selectedSql": "SELECT %s FROM ps_observation.route WHERE route.topiaId %s", + "insertSql": "INSERT INTO ps_observation.route(%s) VALUES (%%s);", + "parentColumnName": "trip", + "columnNames": "topiaid,comment,date,endlogvalue,homeid,lastupdatedate,startlogvalue,topiacreatedate,topiaversion,trip", + "entryPoint": true + }, + { + "gav": "ps_observation.set", + "selectedSql": "SELECT %s FROM ps_observation.set set INNER JOIN ps_observation.activity activity ON activity.set = set.topiaId WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.set(%s) VALUES (%%s);", + "columnNames": "topiaid,comment,currentdirection,currentmeasuredepth,currentspeed,endtimestamp,haulingendtimestamp,haulingstarttimestamp,homeid,lastupdatedate,maxgeardepth,reasonfornullset,schoolmeandepth,schoolthickness,schooltopdepth,schooltype,starttime,supportvesselname,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.activity", + "selectedSql": "SELECT %s FROM ps_observation.activity activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.activity(%s) VALUES (%%s);", + "parentColumnName": "route", + "columnNames": "topiaid,comment,currentfpazone,dataquality,detectionmode,ersid,homeid,lastupdatedate,latitude,longitude,nextfpazone,observedsystemdistance,previousfpazone,reasonfornofishing,route,seasurfacetemperature,set,surroundingactivity,time,topiacreatedate,topiaversion,vesselactivity,vesselspeed,wind", + "columnsToReplace": "set" + }, + { + "gav": "ps_observation.catch", + "selectedSql": "SELECT %s FROM ps_observation.catch catch INNER JOIN ps_observation.activity activity ON activity.set = catch.set WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,catchweight,catchweightcomputedsource,comment,homeid,informationsource,lastupdatedate,lengthmeasuremethod,meanlength,meanlengthcomputedsource,meanweight,meanweightcomputedsource,reasonfordiscard,set,set_idx,species,speciesfate,topiacreatedate,topiaversion,totalcount,totalcountcomputedsource,weightmeasuremethod,well" + }, + { + "gav": "ps_observation.floatingObject", + "selectedSql": "SELECT %s FROM ps_observation.floatingObject floatingObject INNER JOIN ps_observation.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.floatingObject(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "topiaid,activity,comment,computedwhenarrivingbiodegradable,computedwhenarrivingnonentangling,computedwhenarrivingsimplifiedobjecttype,computedwhenleavingbiodegradable,computedwhenleavingnonentangling,computedwhenleavingsimplifiedobjecttype,homeid,lastupdatedate,objectoperation,supportvesselname,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.floatingObjectPart", + "selectedSql": "SELECT %s FROM ps_observation.floatingObjectPart floatingObjectPart INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = floatingObjectPart.floatingObject INNER JOIN ps_observation.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.floatingObjectPart(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,objectmaterial,topiacreatedate,topiaversion,whenarriving,whenleaving" + }, + { + "gav": "ps_observation.nonTargetCatchRelease", + "selectedSql": "SELECT %s FROM ps_observation.nonTargetCatchRelease nonTargetCatchRelease INNER JOIN ps_observation.activity activity ON activity.set = nonTargetCatchRelease.set WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.nonTargetCatchRelease(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,comment,conformity,count,homeid,lastupdatedate,length,lengthmeasuremethod,releasingtime,set,set_idx,sex,species,speciesgroupreleasemode,status,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.objectObservedSpecies", + "selectedSql": "SELECT %s FROM ps_observation.objectObservedSpecies objectObservedSpecies INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = objectObservedSpecies.floatingObject INNER JOIN ps_observation.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.objectObservedSpecies(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,count,floatingobject,homeid,lastupdatedate,species,speciesstatus,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.objectSchoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.objectSchoolEstimate objectSchoolEstimate INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = objectSchoolEstimate.floatingObject INNER JOIN ps_observation.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.objectSchoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,floatingobject,homeid,lastupdatedate,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ps_observation.schoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.schoolEstimate schoolEstimate INNER JOIN ps_observation.activity activity ON activity.set = schoolEstimate.set WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.schoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,meanweight,set,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ps_observation.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_observation.transmittingBuoy transmittingBuoy INNER JOIN ps_observation.floatingObject floatingObject ON floatingObject.topiaId = transmittingBuoy.floatingObject INNER JOIN ps_observation.activity activity ON activity.topiaId = floatingObject.activity WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel" + }, + { + "gav": "ps_observation.sample", + "selectedSql": "SELECT %s FROM ps_observation.sample sample INNER JOIN ps_observation.activity activity ON activity.set = sample.set WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.sample(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,comment,homeid,lastupdatedate,set,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.sampleMeasure", + "selectedSql": "SELECT %s FROM ps_observation.sampleMeasure sampleMeasure INNER JOIN ps_observation.sample sample ON sample.topiaId = sampleMeasure.sample INNER JOIN ps_observation.activity activity ON activity.set = sample.set WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.sampleMeasure(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,islengthcomputed,isweightcomputed,lastupdatedate,length,lengthmeasuremethod,picturesreferences,sample,sample_idx,sex,sizemeasuretype,species,speciesfate,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype" + }, + { + "gav": "ps_observation.activity_observedsystem", + "selectedSql": "SELECT %s FROM ps_observation.activity_observedsystem INNER JOIN ps_observation.activity activity ON activity_observedsystem.activity = activity.topiaId WHERE activity.route %s", + "insertSql": "INSERT INTO ps_observation.activity_observedsystem(%s) VALUES (%%s);", + "parentColumnName": "activity", + "columnNames": "activity,observedsystem", + "columnsToReplace": "activity" + } + ], + "fr.ird.observe.entities.data.ps.observation.Sample": [ + { + "gav": "ps_observation.sample", + "selectedSql": "SELECT %s FROM ps_observation.sample WHERE sample.topiaId %s", + "insertSql": "INSERT INTO ps_observation.sample(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,comment,homeid,lastupdatedate,set,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ps_observation.sampleMeasure", + "selectedSql": "SELECT %s FROM ps_observation.sampleMeasure sampleMeasure WHERE sampleMeasure.sample %s", + "insertSql": "INSERT INTO ps_observation.sampleMeasure(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,islengthcomputed,isweightcomputed,lastupdatedate,length,lengthmeasuremethod,picturesreferences,sample,sample_idx,sex,sizemeasuretype,species,speciesfate,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype" + } + ], + "fr.ird.observe.entities.data.ps.observation.SampleMeasure": [ + { + "gav": "ps_observation.sampleMeasure", + "selectedSql": "SELECT %s FROM ps_observation.sampleMeasure WHERE sampleMeasure.topiaId %s", + "insertSql": "INSERT INTO ps_observation.sampleMeasure(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,islengthcomputed,isweightcomputed,lastupdatedate,length,lengthmeasuremethod,picturesreferences,sample,sample_idx,sex,sizemeasuretype,species,speciesfate,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.SchoolEstimate": [ + { + "gav": "ps_observation.schoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.schoolEstimate WHERE schoolEstimate.topiaId %s", + "insertSql": "INSERT INTO ps_observation.schoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,meanweight,set,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod", + "entryPoint": true + } + ], + "fr.ird.observe.entities.data.ps.observation.Set": [ + { + "gav": "ps_observation.set", + "selectedSql": "SELECT %s FROM ps_observation.set WHERE set.topiaId %s", + "insertSql": "INSERT INTO ps_observation.set(%s) VALUES (%%s);", + "updateReverseAssociationSql": "UPDATE ps_observation.activity activity SET activity.set = '%s' WHERE activity.topiaId = '%s'", + "columnNames": "topiaid,comment,currentdirection,currentmeasuredepth,currentspeed,endtimestamp,haulingendtimestamp,haulingstarttimestamp,homeid,lastupdatedate,maxgeardepth,reasonfornullset,schoolmeandepth,schoolthickness,schooltopdepth,schooltype,starttime,supportvesselname,topiacreatedate,topiaversion", + "entryPoint": true + }, + { + "gav": "ps_observation.catch", + "selectedSql": "SELECT %s FROM ps_observation.catch catch WHERE catch.set %s", + "insertSql": "INSERT INTO ps_observation.catch(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,catchweight,catchweightcomputedsource,comment,homeid,informationsource,lastupdatedate,lengthmeasuremethod,meanlength,meanlengthcomputedsource,meanweight,meanweightcomputedsource,reasonfordiscard,set,set_idx,species,speciesfate,topiacreatedate,topiaversion,totalcount,totalcountcomputedsource,weightmeasuremethod,well" + }, + { + "gav": "ps_observation.nonTargetCatchRelease", + "selectedSql": "SELECT %s FROM ps_observation.nonTargetCatchRelease nonTargetCatchRelease WHERE nonTargetCatchRelease.set %s", + "insertSql": "INSERT INTO ps_observation.nonTargetCatchRelease(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,acquisitionmode,comment,conformity,count,homeid,lastupdatedate,length,lengthmeasuremethod,releasingtime,set,set_idx,sex,species,speciesgroupreleasemode,status,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.schoolEstimate", + "selectedSql": "SELECT %s FROM ps_observation.schoolEstimate schoolEstimate WHERE schoolEstimate.set %s", + "insertSql": "INSERT INTO ps_observation.schoolEstimate(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,homeid,lastupdatedate,meanweight,set,species,topiacreatedate,topiaversion,totalweight,weightmeasuremethod" + }, + { + "gav": "ps_observation.sample", + "selectedSql": "SELECT %s FROM ps_observation.sample sample WHERE sample.set %s", + "insertSql": "INSERT INTO ps_observation.sample(%s) VALUES (%%s);", + "parentColumnName": "set", + "columnNames": "topiaid,comment,homeid,lastupdatedate,set,topiacreatedate,topiaversion" + }, + { + "gav": "ps_observation.sampleMeasure", + "selectedSql": "SELECT %s FROM ps_observation.sampleMeasure sampleMeasure INNER JOIN ps_observation.sample sample ON sample.topiaId = sampleMeasure.sample WHERE sample.set %s", + "insertSql": "INSERT INTO ps_observation.sampleMeasure(%s) VALUES (%%s);", + "parentColumnName": "sample", + "columnNames": "topiaid,acquisitionmode,count,homeid,islengthcomputed,isweightcomputed,lastupdatedate,length,lengthmeasuremethod,picturesreferences,sample,sample_idx,sex,sizemeasuretype,species,speciesfate,tagnumber,topiacreatedate,topiaversion,weight,weightmeasuremethod,weightmeasuretype" + } + ], + "fr.ird.observe.entities.data.ps.observation.TransmittingBuoy": [ + { + "gav": "ps_observation.transmittingBuoy", + "selectedSql": "SELECT %s FROM ps_observation.transmittingBuoy WHERE transmittingBuoy.topiaId %s", + "insertSql": "INSERT INTO ps_observation.transmittingBuoy(%s) VALUES (%%s);", + "parentColumnName": "floatingObject", + "columnNames": "topiaid,code,comment,country,floatingobject,homeid,lastupdatedate,latitude,longitude,topiacreatedate,topiaversion,transmittingbuoyoperation,transmittingbuoyownership,transmittingbuoytype,vessel", + "entryPoint": true + } + ] + } +} \ No newline at end of file ===================================== core/persistence/java/src/test/java/fr/ird/observe/spi/script/UpdateLastUpdateDateFieldScriptTest.java ===================================== @@ -23,12 +23,10 @@ package fr.ird.observe.spi.script; */ import fr.ird.observe.entities.ObserveTopiaEntitySqlModelResource; -import fr.ird.observe.spi.script.ToolkitEntitySqlScriptModel; -import fr.ird.observe.spi.script.UpdateLastUpdateDateFieldScript; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel; import java.util.Date; import java.util.List; ===================================== core/persistence/java/src/test/java/fr/ird/observe/spi/script/UpdateLastUpdateDateTableScriptTest.java ===================================== @@ -23,12 +23,10 @@ package fr.ird.observe.spi.script; */ import fr.ird.observe.entities.ObserveTopiaEntitySqlModelResource; -import fr.ird.observe.spi.script.ToolkitEntitySqlScriptModel; -import fr.ird.observe.spi.script.UpdateLastUpdateDateTableScript; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel; import java.util.Date; import java.util.List; ===================================== core/persistence/test/src/main/java/fr/ird/observe/persistence/test/PersistenceTestSupportRead.java ===================================== @@ -33,8 +33,8 @@ import fr.ird.observe.test.spi.DatabaseVersionConfiguration; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.ClassRule; -import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataEntity; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel; import org.nuiton.topia.service.sql.model.TopiaEntitySqlModel; import java.util.List; ===================================== core/persistence/test/src/main/java/fr/ird/observe/persistence/test/PersistenceTestSupportWrite.java ===================================== @@ -39,7 +39,7 @@ import org.junit.After; import org.junit.Assert; import org.junit.ClassRule; import org.junit.Rule; -import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataEntity; import org.nuiton.topia.service.sql.model.TopiaEntitySqlDescriptors; import org.nuiton.topia.service.sql.model.TopiaEntitySqlModel; import org.nuiton.topia.service.sql.plan.copy.TopiaEntitySqlCopyPlan; ===================================== core/persistence/test/src/test/java/fr/ird/observe/persistence/test/DefinitionContentTest.java ===================================== @@ -29,7 +29,7 @@ import fr.ird.observe.spi.context.DtoEntityContext; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel; /** * Created on 22/11/2021. ===================================== core/persistence/test/src/test/java/fr/ird/observe/persistence/test/PersistenceModelWriteTest.java ===================================== @@ -111,7 +111,7 @@ public class PersistenceModelWriteTest extends PersistenceTestSupportWrite { TopiaEntitySqlCopyPlan copyPlan = copyPlan(classifier, applicationContext); createRequest(classifier); if (!classifier.equals(CLASSIFIER_REFERENTIAL)) { - request.addReplicateTableRequest(applicationContext.getSqlService().getCopyPlanModel().getStandalonePlan(), null); + request.addCopyTableRequest(applicationContext.getSqlService().getCopyPlanModel().getStandalonePlan(), null); selectArgument = TopiaEntitySqlSelectArgument.of(tripId); } importScriptAndAssertCount(applicationContext, copyPlan, selectArgument, expectedCount); @@ -136,7 +136,7 @@ public class PersistenceModelWriteTest extends PersistenceTestSupportWrite { } void importScriptAndAssertCount(ObserveTopiaApplicationContext applicationContext, TopiaEntitySqlCopyPlan copyPlan, TopiaEntitySqlSelectArgument selectArgument, Map<String, Long> expectedResults) throws Exception { - request.addReplicateTableRequest(copyPlan, selectArgument); + request.addCopyTableRequest(copyPlan, selectArgument); TopiaSqlScript script = applicationContext.getSqlService().consume(request); log.info(String.format("Generated script: %s", scriptFile)); File targetDatabaseDirectory = new File(localTestMethodResource.getTestDirectory(), "import-" + scriptFile.getName()); ===================================== core/persistence/test/src/test/java/fr/ird/observe/persistence/test/SqlServiceTest.java ===================================== @@ -41,9 +41,7 @@ import org.junit.runners.Parameterized; import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.service.sql.request.DeleteRequest; -import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.Comparator; import java.util.stream.Collectors; @@ -82,11 +80,7 @@ public class SqlServiceTest extends PersistenceTestSupportWrite { DeleteRequest request = DeleteRequest.of(false, entityType.getName(), id); TopiaSqlScript script = applicationContext.getSqlService().consume(request); if (!ObservePersistenceFixtures.WITH_ASSERT) { - String content; - try (ByteArrayOutputStream target = new ByteArrayOutputStream()) { - script.copy(target); - content = target.toString(StandardCharsets.UTF_8); - } + String content = script.content(); System.out.println(content); } applicationContext.executeSqlStatements(script); ===================================== core/persistence/test/src/test/java/fr/ird/observe/persistence/test/ValidationContentTest.java ===================================== @@ -29,7 +29,7 @@ import fr.ird.observe.spi.context.DtoEntityContext; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; +import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel; /** * Created on 22/11/2021. ===================================== core/services/local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocalSupport.java ===================================== @@ -38,6 +38,7 @@ import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.service.sql.request.CopyEntryPointRequest; import org.nuiton.topia.service.sql.request.CreateDatabaseRequest; import org.nuiton.topia.service.sql.request.DeleteRequest; +import org.nuiton.topia.service.sql.request.ReplicateRequest; import java.io.File; import java.util.Date; @@ -108,6 +109,11 @@ public class DataSourceServiceLocalSupport extends ObserveServiceLocal implement return getTopiaApplicationContext().getSqlService().consume(request); } + @Override + public TopiaSqlScript produceMoveSqlScript(ReplicateRequest request) { + return getTopiaApplicationContext().getSqlService().consume(request); + } + @Override public TopiaSqlScript produceCreateSqlScript(CreateDatabaseRequest request) { if (request.isAddStandaloneTables()) { ===================================== core/services/local/src/main/java/fr/ird/observe/services/local/service/ObserveServiceLocal.java ===================================== @@ -370,6 +370,7 @@ public abstract class ObserveServiceLocal implements ObserveService, ServiceCont } protected final void log(long t0, String prefix, String methodName) { + //TODO Maybe for production, we should remove this ? Need to see memory impact TIME_LOG.log(t0, String.format("%s %s.%s", prefix, getClass().getName(), methodName)); } ===================================== core/services/local/src/main/java/fr/ird/observe/services/local/service/referential/SynchronizeServiceLocalSupport.java ===================================== @@ -33,7 +33,6 @@ import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import fr.ird.observe.spi.module.ObserveBusinessProject; import fr.ird.observe.spi.referential.synchro.OneSideSqlRequest; import fr.ird.observe.spi.referential.synchro.OneSideSqlResult; -import io.ultreia.java4all.util.TimeLog; import org.nuiton.topia.persistence.script.TopiaSqlScript; import java.util.LinkedHashSet; @@ -70,20 +69,15 @@ public class SynchronizeServiceLocalSupport extends ObserveServiceLocal implemen @Override public OneSideSqlResult produceSqlResult(OneSideSqlRequest request) { - long startTime = TimeLog.getTime(); - OneSideSqlResult result = getTopiaApplicationContext() + return getTopiaApplicationContext() .newOneSideSqlResultBuilder(this, now()) .build(request); - TIME_LOG.log(startTime, "produceSqlResult"); - return result; } @Override public void applySql(TopiaSqlScript script, String lastUpdateDateKey) { - long startTime = TimeLog.getTime(); getTopiaPersistenceContext().executeSqlScript(script); updateLastUpdateDates(lastUpdateDateKey); - TIME_LOG.log(startTime, "applySql"); } protected void updateLastUpdateDates(String lastUpdateDateKey) { ===================================== core/services/test/src/main/java/fr/ird/observe/services/service/DataSourceServiceFixtures.java ===================================== @@ -26,17 +26,22 @@ package fr.ird.observe.services.service; import fr.ird.observe.dto.referential.ps.common.ProgramDto; import fr.ird.observe.services.ObserveServicesProvider; import io.ultreia.java4all.util.Version; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.junit.Assert; import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.service.sql.request.CopyEntryPointRequest; import org.nuiton.topia.service.sql.request.CreateDatabaseRequest; import org.nuiton.topia.service.sql.request.DeleteRequest; +import org.nuiton.topia.service.sql.request.ReplicateRequest; import java.util.Collections; import java.util.Set; public class DataSourceServiceFixtures extends GeneratedDataSourceServiceFixtures { + private static final Logger log = LogManager.getLogger(DataSourceServiceFixtures.class); + @Override public void isIdValid(ObserveServicesProvider servicesProvider, DataSourceService service) { boolean actual = service.isIdValid(ProgramDto.class, getProperty("isIdValid.id")); @@ -77,12 +82,11 @@ public class DataSourceServiceFixtures extends GeneratedDataSourceServiceFixture Assert.assertTrue(actual.isEmpty()); } - @Override public void produceCreateSqlScript(ObserveServicesProvider servicesProvider, DataSourceService service) { Version dbVersion = Version.VZERO; - CreateDatabaseRequest h2Request = CreateDatabaseRequest.of(false, dbVersion); - CreateDatabaseRequest pgRequest = CreateDatabaseRequest.of(true, dbVersion); + CreateDatabaseRequest.Builder h2Request = CreateDatabaseRequest.builder(false, dbVersion); + CreateDatabaseRequest.Builder pgRequest = CreateDatabaseRequest.builder(true, dbVersion); produceCreateSqlScript(service, h2Request); produceCreateSqlScript(service, pgRequest); @@ -95,6 +99,13 @@ public class DataSourceServiceFixtures extends GeneratedDataSourceServiceFixture produceAddSqlScript(service, true, dbVersion); } + @Override + public void produceMoveSqlScript(ObserveServicesProvider servicesProvider, DataSourceService service) { + Version dbVersion = Version.VZERO; + produceMoveSqlScript(service, false, dbVersion); + produceMoveSqlScript(service, true, dbVersion); + } + @Override public void produceDeleteSqlScript(ObserveServicesProvider servicesProvider, DataSourceService service) { String id = getProperty("produceDeleteSqlScript.id"); @@ -102,7 +113,7 @@ public class DataSourceServiceFixtures extends GeneratedDataSourceServiceFixture Assert.assertNotNull(actual); } - protected void produceCreateSqlScript(DataSourceService service, CreateDatabaseRequest request) { + protected void produceCreateSqlScript(DataSourceService service, CreateDatabaseRequest.Builder request) { testRequest(service, request); testRequest(service, request = request.addSchema()); testRequest(service, request = request.addStandaloneTables()); @@ -118,14 +129,35 @@ public class DataSourceServiceFixtures extends GeneratedDataSourceServiceFixture testRequest(service, CopyEntryPointRequest.of(pg, dbVersion, "fr.ird.observe.entities.data.ll.common.Trip", Collections.singleton(getLlCommonTripId()))); } + protected void produceMoveSqlScript(DataSourceService service, boolean pg, Version dbVersion) { + String psObsRouteId = getVariable(getVariableName(fr.ird.observe.dto.data.ps.observation.RouteDto.class)); + String psObsActivityId = getVariable(getVariableName(fr.ird.observe.dto.data.ps.observation.ActivityDto.class)); + String psLogbookRouteId = getVariable(getVariableName(fr.ird.observe.dto.data.ps.logbook.RouteDto.class)); + String psLogbookActivityId = getVariable(getVariableName(fr.ird.observe.dto.data.ps.logbook.ActivityDto.class)); + String llObsActivityId = getVariable(getVariableName(fr.ird.observe.dto.data.ll.observation.ActivityDto.class)); + String llLogbookActivityId = getVariable(getVariableName(fr.ird.observe.dto.data.ll.logbook.ActivityDto.class)); + testRequest(service, ReplicateRequest.of(pg, dbVersion, getPsCommonTripId(), "fr.ird.observe.entities.data.ps.observation.Route", Set.of(psObsRouteId))); + testRequest(service, ReplicateRequest.of(pg, dbVersion, psObsRouteId, "fr.ird.observe.entities.data.ps.observation.Activity", Set.of(psObsActivityId))); + testRequest(service, ReplicateRequest.of(pg, dbVersion, getPsCommonTripId(), "fr.ird.observe.entities.data.ps.logbook.Route", Set.of(psLogbookRouteId))); + testRequest(service, ReplicateRequest.of(pg, dbVersion, psLogbookRouteId, "fr.ird.observe.entities.data.ps.logbook.Activity", Set.of(psLogbookActivityId))); + testRequest(service, ReplicateRequest.of(pg, dbVersion, getLlCommonTripId(), "fr.ird.observe.entities.data.ll.observation.Activity", Set.of(llObsActivityId))); + testRequest(service, ReplicateRequest.of(pg, dbVersion, getLlCommonTripId(), "fr.ird.observe.entities.data.ll.logbook.Activity", Set.of(llLogbookActivityId))); + } + protected void testRequest(DataSourceService service, CopyEntryPointRequest request) { TopiaSqlScript actual = service.produceAddSqlScript(request); Assert.assertNotNull(actual); } - protected void testRequest(DataSourceService service, CreateDatabaseRequest request) { - TopiaSqlScript actual = service.produceCreateSqlScript(request); + protected void testRequest(DataSourceService service, CreateDatabaseRequest.Builder request) { + TopiaSqlScript actual = service.produceCreateSqlScript(request.build()); + Assert.assertNotNull(actual); + } + + protected void testRequest(DataSourceService service, ReplicateRequest request) { + TopiaSqlScript actual = service.produceMoveSqlScript(request); Assert.assertNotNull(actual); + log.warn(String.format("Move script for: %s\n:%s", request, actual.content())); } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/df53fa17927f568fea595513b... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/df53fa17927f568fea595513b... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)