branch develop-5.x updated (a90824b -> b786836)
This is an automated email from the git hooks/post-receive script. New change to branch develop-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from a90824b (version 5) Lors de la suppression d'un programme, l'UI propose des programmes qui ne sont pas du type de la marée (Fixes #8935) new b786836 Fix bad topia generation (Fixes #8934) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit b786836122f98ab8a0fa6f1171ee64cae0543d2a Author: Tony CHEMIT <dev@tchemit.fr> Date: Tue Jan 10 11:36:17 2017 +0100 Fix bad topia generation (Fixes #8934) Summary of changes: .../entities/referentiel/SpeciesTopiaDao.java | 248 +++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesTopiaDao.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit b786836122f98ab8a0fa6f1171ee64cae0543d2a Author: Tony CHEMIT <dev@tchemit.fr> Date: Tue Jan 10 11:36:17 2017 +0100 Fix bad topia generation (Fixes #8934) --- .../entities/referentiel/SpeciesTopiaDao.java | 248 +++++++++++++++++++++ 1 file changed, 248 insertions(+) diff --git a/entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesTopiaDao.java b/entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesTopiaDao.java new file mode 100644 index 0000000..b2a111f --- /dev/null +++ b/entities/src/main/java/fr/ird/observe/entities/referentiel/SpeciesTopiaDao.java @@ -0,0 +1,248 @@ +package fr.ird.observe.entities.referentiel; + +import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.entities.longline.CatchLongline; +import fr.ird.observe.entities.longline.CatchLonglineTopiaDao; +import fr.ird.observe.entities.longline.Encounter; +import fr.ird.observe.entities.longline.EncounterTopiaDao; +import fr.ird.observe.entities.longline.Tdr; +import fr.ird.observe.entities.referentiel.seine.WeightCategory; +import fr.ird.observe.entities.referentiel.seine.WeightCategoryTopiaDao; +import fr.ird.observe.entities.seine.NonTargetCatch; +import fr.ird.observe.entities.seine.NonTargetCatchTopiaDao; +import fr.ird.observe.entities.seine.NonTargetLength; +import fr.ird.observe.entities.seine.NonTargetLengthTopiaDao; +import fr.ird.observe.entities.seine.ObjectObservedSpecies; +import fr.ird.observe.entities.seine.ObjectObservedSpeciesTopiaDao; +import fr.ird.observe.entities.seine.ObjectSchoolEstimate; +import fr.ird.observe.entities.seine.ObjectSchoolEstimateTopiaDao; +import fr.ird.observe.entities.seine.SchoolEstimate; +import fr.ird.observe.entities.seine.SchoolEstimateTopiaDao; +import fr.ird.observe.entities.seine.TargetLength; +import fr.ird.observe.entities.seine.TargetLengthTopiaDao; +import org.hibernate.Session; +import org.nuiton.topia.persistence.internal.support.HibernateTopiaJpaSupport; +import org.nuiton.topia.persistence.support.TopiaHibernateSupport; + +import java.util.List; + +public class SpeciesTopiaDao extends AbstractSpeciesTopiaDao<Species> { + + //FIXME Le code généré par topia n'est pas bon, mais on ne fait plus de maintenance sur cette version de Topia... + @Override + public void delete(Species entity) { + if (!entity.isPersisted()) { + throw new IllegalArgumentException("entity " + entity + " is not persisted, you can't delete it"); + } + + TopiaHibernateSupport hibernateSupport = ((HibernateTopiaJpaSupport) topiaJpaSupport).getHibernateSupport(); + Session hibernateSession = hibernateSupport.getHibernateSession(); + + { + String sql = + "SELECT main.* FROM OBSERVE_LONGLINE.Catch main, OBSERVE_LONGLINE.catch_predator secondary " + + " WHERE main.topiaId=secondary.catch AND secondary.predator='" + entity.getTopiaId() + "'"; + List<CatchLongline> list = hibernateSession + .createSQLQuery(sql) + .addEntity("main", ObserveEntityEnum.CatchLongline.getImplementation()) + .list(); + + for (CatchLongline item : list) { + item.removePredator(entity); + } + } + + { + String sql = + "SELECT main.* FROM OBSERVE_LONGLINE.tdr main, OBSERVE_LONGLINE.species_tdr secondary " + + " WHERE main.topiaId=secondary.tdr AND secondary.species='" + entity.getTopiaId() + "'"; + List<Tdr> list = hibernateSession + .createSQLQuery(sql) + .addEntity("main", ObserveEntityEnum.Tdr.getImplementation()) + .list(); + + for (Tdr item : list) { + item.removeSpecies(entity); + } + } + + { + String sql = + "SELECT main.* FROM OBSERVE_COMMON.speciesList main, OBSERVE_COMMON.species_specieslist secondary " + + " WHERE main.topiaId=secondary.speciesList AND secondary.species='" + entity.getTopiaId() + "'"; + List<SpeciesList> list = hibernateSession + .createSQLQuery(sql) + .addEntity("main", ObserveEntityEnum.SpeciesList.getImplementation()) + .list(); + + for (SpeciesList item : list) { + item.removeSpecies(entity); + } + } + + { + CatchLonglineTopiaDao dao = topiaDaoSupplier + .getDao(CatchLongline.class, CatchLonglineTopiaDao.class); + List<CatchLongline> list = dao + .forProperties(CatchLongline.PROPERTY_SPECIES_CATCH, entity) + .findAll(); + for (CatchLongline item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpeciesCatch())) { + item.setSpeciesCatch(null); + } + + } + } + + { + EncounterTopiaDao dao = topiaDaoSupplier + .getDao(Encounter.class, EncounterTopiaDao.class); + List<Encounter> list = dao + .forProperties(Encounter.PROPERTY_SPECIES, entity) + .findAll(); + for (Encounter item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + LengthWeightParameterTopiaDao dao = topiaDaoSupplier + .getDao(LengthWeightParameter.class, LengthWeightParameterTopiaDao.class); + List<LengthWeightParameter> list = dao + .forProperties(LengthWeightParameter.PROPERTY_SPECIES, entity) + .findAll(); + for (LengthWeightParameter item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + NonTargetCatchTopiaDao dao = topiaDaoSupplier + .getDao(NonTargetCatch.class, NonTargetCatchTopiaDao.class); + List<NonTargetCatch> list = dao + .forProperties(NonTargetCatch.PROPERTY_SPECIES, entity) + .findAll(); + for (NonTargetCatch item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + ObjectObservedSpeciesTopiaDao dao = topiaDaoSupplier + .getDao(ObjectObservedSpecies.class, ObjectObservedSpeciesTopiaDao.class); + List<ObjectObservedSpecies> list = dao + .forProperties(ObjectObservedSpecies.PROPERTY_SPECIES, entity) + .findAll(); + for (ObjectObservedSpecies item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + NonTargetLengthTopiaDao dao = topiaDaoSupplier + .getDao(NonTargetLength.class, NonTargetLengthTopiaDao.class); + List<NonTargetLength> list = dao + .forProperties(NonTargetLength.PROPERTY_SPECIES, entity) + .findAll(); + for (NonTargetLength item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + TargetLengthTopiaDao dao = topiaDaoSupplier + .getDao(TargetLength.class, TargetLengthTopiaDao.class); + List<TargetLength> list = dao + .forProperties(TargetLength.PROPERTY_SPECIES, entity) + .findAll(); + for (TargetLength item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + ObjectSchoolEstimateTopiaDao dao = topiaDaoSupplier + .getDao(ObjectSchoolEstimate.class, ObjectSchoolEstimateTopiaDao.class); + List<ObjectSchoolEstimate> list = dao + .forProperties(ObjectSchoolEstimate.PROPERTY_SPECIES, entity) + .findAll(); + for (ObjectSchoolEstimate item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + SchoolEstimateTopiaDao dao = topiaDaoSupplier + .getDao(SchoolEstimate.class, SchoolEstimateTopiaDao.class); + List<SchoolEstimate> list = dao + .forProperties(SchoolEstimate.PROPERTY_SPECIES, entity) + .findAll(); + for (SchoolEstimate item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + { + WeightCategoryTopiaDao dao = topiaDaoSupplier + .getDao(WeightCategory.class, WeightCategoryTopiaDao.class); + List<WeightCategory> list = dao + .forProperties(WeightCategory.PROPERTY_SPECIES, entity) + .findAll(); + for (WeightCategory item : list) { + + // sletellier : Set null only if target is concerned by deletion + if (entity.equals(item.getSpecies())) { + item.setSpecies(null); + } + + } + } + + // On applique le super.delete (mais on ne peut pas passer par le parent car le code est erroné...) + topiaJpaSupport.delete(entity); + entity.notifyDeleted(); + topiaFiresSupport.notifyEntityDeleted(entity); + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm