#5309, #5310 Switch on write transaction annotation for delete, Add load methof for...
authorCherian Mathew <c.mathew@bgbm.org>
Thu, 8 Oct 2015 13:10:45 +0000 (15:10 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Thu, 8 Oct 2015 13:10:45 +0000 (15:10 +0200)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IService.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ServiceBase.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/UserService.java

index 2876e05e4c6fbf0f58ceb6358a66440164e8e7e6..7f1cea9aa37905eab8e950e94d1fe281d1d097ac 100644 (file)
@@ -306,6 +306,16 @@ public interface IService<T extends ICdmBase>{
      */\r
     public UUID update(T transientObject);\r
 \r
+    /**\r
+     * Simply calls the load method.\r
+     * Required specifically for the editor to allow load calls which\r
+     * can also update the session cache.\r
+     *\r
+     * @param uuid\r
+     * @return\r
+     */\r
+    public T loadWithUpdate(UUID uuid);\r
+\r
     /**\r
      * Method that lists the objects matching the example provided.\r
      * The includeProperties property is used to specify which properties of the example are used.\r
@@ -390,8 +400,4 @@ public interface IService<T extends ICdmBase>{
      */\r
     public MergeResult<T> merge(T newInstance, boolean returnTransientEntity);\r
 \r
-\r
-\r
-\r
-\r
 }
\ No newline at end of file
index 92e2ec4a7458361bfe3166949a68c8fde17fd06b..c368e9c87448d870effa868c37a484bbfcb48e7b 100644 (file)
@@ -162,6 +162,12 @@ public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T
         return uuid == null ? null : dao.load(uuid);\r
     }\r
 \r
+    @Override\r
+    @Transactional(readOnly = true)\r
+    public T loadWithUpdate(UUID uuid) {\r
+        return load(uuid);\r
+    }\r
+\r
     @Override\r
     @Transactional(readOnly = true)\r
     public T load(UUID uuid, List<String> propertyPaths){\r
index a5eb72d0447c274414862f3a7ad9153f1157b28a..c21de5a78623cbcbd3837b847eec0d7e0aeea8c3 100644 (file)
@@ -492,17 +492,20 @@ public class UserService extends ServiceBase<User,IUserDao> implements IUserServ
      * ================================================ */\r
 \r
     @Override\r
+    @Transactional(readOnly=false)\r
     @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_USER_MANAGER')")\r
     public DeleteResult delete(User persistentObject)  {\r
         return super.delete(persistentObject);\r
     }\r
 \r
     @Override\r
+    @Transactional(readOnly=false)\r
     public DeleteResult delete(UUID userUuid)  {\r
         return delete(dao.load(userUuid));\r
     }\r
 \r
     @Override\r
+    @Transactional(readOnly=false)\r
     @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_USER_MANAGER')")\r
     public Map<UUID, User> save(Collection<User> newInstances) {\r
         Map<UUID, User> users = new HashMap<UUID, User>();\r