added create / update methods

This commit is contained in:
2018-11-10 16:48:32 +01:00
parent 9ebb649458
commit 17c080faa2

View File

@ -33,6 +33,18 @@ public class ApplicationPermissionControl implements Serializable {
} }
} }
@Transactional
public void create(String name, String description) {
ApplicationPermissionEntity permission = new ApplicationPermissionEntity(name, description);
em.persist(permission);
}
@Transactional
public void update (ApplicationPermissionEntity permission) throws AccountException {
ApplicationPermissionEntity existing = attach(permission);
em.merge(existing);
}
@Transactional @Transactional
public void createOrUpdate(String name, String description) { public void createOrUpdate(String name, String description) {
ApplicationPermissionEntity permission = findByName(name); ApplicationPermissionEntity permission = findByName(name);
@ -44,19 +56,19 @@ public class ApplicationPermissionControl implements Serializable {
em.merge(permission); em.merge(permission);
} }
} }
public void delete(ApplicationPermissionEntity permission) throws AccountException { public void delete(ApplicationPermissionEntity permission) throws AccountException {
ApplicationPermissionEntity existingPermission = attach(permission); ApplicationPermissionEntity existingPermission = attach(permission);
em.remove(existingPermission); em.remove(existingPermission);
} }
public ApplicationPermissionEntity attach(ApplicationPermissionEntity permission) throws AccountException { public ApplicationPermissionEntity attach(ApplicationPermissionEntity permission) throws AccountException {
try { try {
return em.merge(permission); return em.merge(permission);
} catch (OptimisticLockException ex) { } catch (OptimisticLockException ex) {
throw new AccountException("Entity updated / deleted, please reload", true); throw new AccountException("Entity updated / deleted, please reload", true);
} }
} }
private ApplicationPermissionEntity findByName(String name) { private ApplicationPermissionEntity findByName(String name) {
Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName"); Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName");