diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/CalendarExceptionTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/CalendarExceptionTypeDAO.java index 5e8915005..8642f5e3a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/CalendarExceptionTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/CalendarExceptionTypeDAO.java @@ -82,7 +82,7 @@ public class CalendarExceptionTypeDAO extends @Override public boolean existsByName(String name) { try { - findByName(name); + findUniqueByName(name); return true; } catch (InstanceNotFoundException e) { return false; @@ -91,7 +91,7 @@ public class CalendarExceptionTypeDAO extends @Override @Transactional(readOnly = true) - public CalendarExceptionType findByName(String name) throws InstanceNotFoundException { + public CalendarExceptionType findUniqueByName(String name) throws InstanceNotFoundException { if (StringUtils.isBlank(name)) { throw new InstanceNotFoundException(null, CalendarExceptionType.class.getName()); } @@ -109,4 +109,11 @@ public class CalendarExceptionTypeDAO extends } + @Override + @Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW) + public CalendarExceptionType findUniqueByNameAnotherTransaction(String name) + throws InstanceNotFoundException { + return findUniqueByName(name); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/ICalendarExceptionTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/ICalendarExceptionTypeDAO.java index b3e56f0d2..ad2b169c2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/ICalendarExceptionTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/daos/ICalendarExceptionTypeDAO.java @@ -44,8 +44,11 @@ public interface ICalendarExceptionTypeDAO extends boolean existsByNameAnotherTransaction(String name); - CalendarExceptionType findByName(String name) throws InstanceNotFoundException; + CalendarExceptionType findUniqueByName(String name) throws InstanceNotFoundException; boolean existsByName(String name); + CalendarExceptionType findUniqueByNameAnotherTransaction(String name) + throws InstanceNotFoundException; + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/CalendarExceptionType.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/CalendarExceptionType.java index 005b0990b..dd0a143a1 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/CalendarExceptionType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/CalendarExceptionType.java @@ -167,7 +167,8 @@ public class CalendarExceptionType extends IntegrationEntity { name); } else { try { - CalendarExceptionType calendarExceptionType = calendarExceptionTypeDAO.findByName(name); + CalendarExceptionType calendarExceptionType = calendarExceptionTypeDAO + .findUniqueByNameAnotherTransaction(name); return calendarExceptionType.getId().equals(getId()); } catch (InstanceNotFoundException e) { return true;