fix #7249: deleteTypeDesignation for uuids needs to be transactional
authorKatja Luther <k.luther@bgbm.org>
Fri, 16 Feb 2018 12:55:28 +0000 (13:55 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 16 Feb 2018 12:55:28 +0000 (13:55 +0100)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/NameServiceImpl.java

index 21aa5fe283e1aa2d688254f241c99d00384087d6..3a230696b137797a88322fae0b12f0d796b50f90 100644 (file)
@@ -194,7 +194,7 @@ public class NameServiceImpl extends IdentifiableServiceBase<TaxonName,ITaxonNam
     }
 
     @Override
-    @Transactional(readOnly = false)
+
     public DeleteResult deleteTypeDesignation(TaxonName name, TypeDesignationBase typeDesignation){
        if(typeDesignation!=null && typeDesignation.getId()!=0){
                typeDesignation = HibernateProxyHelper.deproxy(referencedEntityDao.load(typeDesignation.getUuid()), TypeDesignationBase.class);
@@ -225,6 +225,7 @@ public class NameServiceImpl extends IdentifiableServiceBase<TaxonName,ITaxonNam
 
 
     @Override
+    @Transactional(readOnly = false)
     public DeleteResult deleteTypeDesignation(UUID nameUuid, UUID typeDesignationUuid){
         TaxonName nameBase = load(nameUuid);
         TypeDesignationBase typeDesignation = HibernateProxyHelper.deproxy(referencedEntityDao.load(typeDesignationUuid), TypeDesignationBase.class);
@@ -235,6 +236,7 @@ public class NameServiceImpl extends IdentifiableServiceBase<TaxonName,ITaxonNam
      * @param name
      * @param typeDesignation
      */
+    @Transactional
     private void removeSingleDesignation(TaxonName name, TypeDesignationBase typeDesignation) {
         name.removeTypeDesignation(typeDesignation);
         if (typeDesignation.getTypifiedNames().isEmpty()){