Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 33163d12 by Tony Chemit at 2021-03-14T10:14:34+01:00 Introduce PersistenceResult to perform better save in services - See ird-observe-toolkit#24 See #1801 - - - - - 12 changed files: - services/local-impl/src/main/java/fr/ird/observe/services/local/service/ObserveServiceLocal.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ContainerDataServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/EditableDataServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/SimpleDataServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/TripServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivitySampleServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/SetServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/observation/BranchlineServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/observation/SetServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/FloatingObjectServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/SampleDataServiceLocalSupport.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/SetServiceLocalSupport.java Changes: ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/ObserveServiceLocal.java ===================================== @@ -192,9 +192,7 @@ public abstract class ObserveServiceLocal implements ObserveService { protected <E extends Entity> SaveResultDto saveEntity(DtoEntityContext<?, ?, E, ?> spi, E entity) { return newSaveHelper() - .update(spi, entity) - .updateLastUpdateDateField(spi, entity) - .updateLastUpdateDateTable(spi) + .update(spi, entity, true, true) .build(entity); // entity = spi.update(getTopiaPersistenceContext(), entity); // getTopiaPersistenceContext().flush(); ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ContainerDataServiceLocalSupport.java ===================================== @@ -71,8 +71,7 @@ public class ContainerDataServiceLocalSupport<PE extends DataEntity<?, ?>, D ext checkLastUpdateDate(entity, dto); entity.fromDto(getReferentialLocale(), dto); return newSaveHelper() - .update(parentSpi, entity, saveCallback) - .updateLastUpdateDateField(parentSpi, entity) + .update(parentSpi, entity, saveCallback, true, false) .updateLastUpdateDateTable(spi) .build(entity); // if (saveCallback == null) { ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/EditableDataServiceLocalSupport.java ===================================== @@ -45,7 +45,7 @@ import java.util.stream.Stream; * @author Tony Chemit - dev@tchemit.fr * @since 8.0.1 */ -public abstract class EditableDataServiceLocalSupport<PE extends Entity, D extends EditableDto, R extends DataDtoReference, E extends DataEntity<?, ?>, T extends TopiaDao<E>, S extends SaveResultDto> extends ObserveServiceLocal implements EditableDataService<D, R> { +public abstract class EditableDataServiceLocalSupport<PE extends Entity, D extends EditableDto, R extends DataDtoReference, E extends DataEntity<?, ?>, T extends TopiaDao<E>> extends ObserveServiceLocal implements EditableDataService<D, R> { protected final DataDtoEntityContext<D, R, E, T> spi; protected final DtoEntityContext<?, ?, PE, ?> parentSpi; ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/SimpleDataServiceLocalSupport.java ===================================== @@ -64,8 +64,7 @@ public class SimpleDataServiceLocalSupport<PE extends DataEntity<?, ?>, M extend checkLastUpdateDate(entity, dto); entity.fromDto(getReferentialLocale(), dto); return newSaveHelper() - .update(parentSpi, entity, saveCallback) - .updateLastUpdateDateField(parentSpi, entity) + .update(parentSpi, entity, saveCallback, true, false) .updateLastUpdateDateTable(spi) .build(entity); // if (saveCallback == null) { ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/TripServiceLocalSupport.java ===================================== @@ -164,7 +164,7 @@ public abstract class TripServiceLocalSupport<D extends OpenableDto & fr.ird.obs saveHelper.updateLastUpdateDateField(spi, entity); // saveEntity(spi, entity); } - saveHelper.build(); + saveHelper.updateLastUpdateDateTable(spi).build(); return ids; } ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/ActivitySampleServiceLocalSupport.java ===================================== @@ -31,7 +31,6 @@ import fr.ird.observe.dto.reference.DataDtoReferenceSet; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.DataNotFoundException; import fr.ird.observe.entities.Entity; -import fr.ird.observe.entities.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.ReplicateDataEngine; import fr.ird.observe.entities.data.DataEntity; import fr.ird.observe.entities.data.TripAware; @@ -45,13 +44,12 @@ import fr.ird.observe.services.local.service.data.ll.common.TripServiceLocalSupp import fr.ird.observe.services.service.data.ll.logbook.ActivitySampleService; import fr.ird.observe.spi.context.DataDtoEntityContext; -import java.util.Date; import java.util.stream.Stream; /** * @author Tony Chemit - dev@tchemit.fr */ -class ActivitySampleServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, ActivitySampleDto, ActivitySampleReference, Sample, SampleTopiaDao, SaveResultDto> implements ActivitySampleService { +class ActivitySampleServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, ActivitySampleDto, ActivitySampleReference, Sample, SampleTopiaDao> implements ActivitySampleService { public ActivitySampleServiceLocalSupport() { super(Activity.SPI, Sample.ACTIVITY_SAMPLE_SPI, Activity.PROPERTY_SAMPLE); @@ -76,9 +74,8 @@ class ActivitySampleServiceLocalSupport extends EditableDataServiceLocalSupport< parent.setSample(entity); //FIXME Why we are using this ??? return newSaveHelper() - .update(spi, entity) + .update(spi, entity, false, true) .updateLastUpdateDateField(parentSpi, parent) - .updateLastUpdateDateTable(spi) .build(entity); // return saveEntity(parent, entity); } @@ -123,14 +120,9 @@ class ActivitySampleServiceLocalSupport extends EditableDataServiceLocalSupport< } protected <P extends DataEntity<?, ?>, E extends DataEntity<?, ?>> void saveEntity2(DataDtoEntityContext<?, ?, P, ?> parentSpi, DataDtoEntityContext<?, ?, E, ?> spi, P parenEntity, E entity) { - parentSpi.update(getTopiaPersistenceContext(), parenEntity); - spi.update(getTopiaPersistenceContext(), entity); - Date lastUpdateDate = now(); - ObserveTopiaPersistenceContext persistenceContext = getTopiaPersistenceContext(); - persistenceContext.flush(); - spi.updateLastUpdateDateField(persistenceContext, entity.getTopiaId(), lastUpdateDate); - spi.updateLastUpdateDateTable(persistenceContext, lastUpdateDate); - parentSpi.updateLastUpdateDateField(persistenceContext, parenEntity.getTopiaId(), lastUpdateDate); - parentSpi.updateLastUpdateDateTable(persistenceContext, lastUpdateDate); + newSaveHelper() + .update(parentSpi, parenEntity, true, true) + .update(spi, entity, true, true) + .build(); } } ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/logbook/SetServiceLocalSupport.java ===================================== @@ -45,7 +45,7 @@ import java.util.Objects; /** * @author Tony Chemit - dev@tchemit.fr */ -class SetServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, SetDto, SetReference, Set, SetTopiaDao, SaveResultDto> implements SetService { +class SetServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, SetDto, SetReference, Set, SetTopiaDao> implements SetService { public SetServiceLocalSupport() { super(Activity.SPI, Set.SPI, Activity.PROPERTY_SET); ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/observation/BranchlineServiceLocalSupport.java ===================================== @@ -50,9 +50,8 @@ class BranchlineServiceLocalSupport extends ObserveServiceLocal implements Branc checkLastUpdateDate(entity, dto); entity.fromDto(getReferentialLocale(), dto); return newSaveHelper() - .update(Branchline.SPI, entity) + .update(Branchline.SPI, entity, false, true) .updateLastUpdateDateField(Set.SPI, parent) - .updateLastUpdateDateTable(Branchline.SPI) .build(entity); // return saveEntity(Set.SPI, Branchline.SPI, parent, entity); } ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ll/observation/SetServiceLocalSupport.java ===================================== @@ -27,7 +27,6 @@ import fr.ird.observe.dto.data.ll.observation.SetDto; import fr.ird.observe.dto.data.ll.observation.SetReference; import fr.ird.observe.dto.data.ll.observation.SetStubDto; import fr.ird.observe.dto.form.Form; -import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.data.ll.common.Trip; import fr.ird.observe.entities.data.ll.observation.Activity; import fr.ird.observe.entities.data.ll.observation.Set; @@ -43,7 +42,7 @@ import java.util.Objects; /** * @author Tony Chemit - dev@tchemit.fr */ -class SetServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, SetDto, SetReference, Set, SetTopiaDao, SaveResultDto> implements SetService { +class SetServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, SetDto, SetReference, Set, SetTopiaDao> implements SetService { public SetServiceLocalSupport() { super(Activity.SPI, Set.SPI, Activity.PROPERTY_SET); ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/FloatingObjectServiceLocalSupport.java ===================================== @@ -71,7 +71,7 @@ import java.util.stream.Collectors; /** * @author Tony Chemit - dev@tchemit.fr */ -class FloatingObjectServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, FloatingObjectDto, FloatingObjectReference, FloatingObject, FloatingObjectTopiaDao, SaveResultDto> implements FloatingObjectService { +class FloatingObjectServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, FloatingObjectDto, FloatingObjectReference, FloatingObject, FloatingObjectTopiaDao> implements FloatingObjectService { private static final Logger log = LogManager.getLogger(FloatingObjectServiceLocalSupport.class); ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/SampleDataServiceLocalSupport.java ===================================== @@ -75,9 +75,8 @@ public abstract class SampleDataServiceLocalSupport<C extends ContainerChildDto, protected SaveResultDto onSave(Set parent, E entity, boolean notPersisted) { return newSaveHelper() - .update(spi, entity) + .update(spi, entity, false, true) .updateLastUpdateDateField(Set.SPI, parent) - .updateLastUpdateDateTable(spi) .build(entity); // return saveEntity(Set.SPI, spi, parent, entity); } ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/SetServiceLocalSupport.java ===================================== @@ -25,7 +25,6 @@ package fr.ird.observe.services.local.service.data.ps.observation; import fr.ird.observe.dto.data.ps.observation.SetDto; import fr.ird.observe.dto.data.ps.observation.SetReference; import fr.ird.observe.dto.form.Form; -import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.data.ps.observation.Activity; import fr.ird.observe.entities.data.ps.observation.Route; import fr.ird.observe.entities.data.ps.observation.Set; @@ -40,7 +39,7 @@ import java.util.Date; /** * @author Tony Chemit - dev@tchemit.fr */ -class SetServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, SetDto, SetReference, Set, SetTopiaDao, SaveResultDto> implements SetService { +class SetServiceLocalSupport extends EditableDataServiceLocalSupport<Activity, SetDto, SetReference, Set, SetTopiaDao> implements SetService { public SetServiceLocalSupport() { super(Activity.SPI, Set.SPI, Activity.PROPERTY_SET); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/33163d1241dd2b07ad2c25af33... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/33163d1241dd2b07ad2c25af33... You're receiving this email because of your account on gitlab.com.