0 Replies Latest reply on Jul 21, 2008 9:05 PM by Cyrill Rüttimann

    EntityQuery TransactionRolledbackLocalException after caught exception

    Cyrill Rüttimann Newbie


      I have done a refactoring of my code introducing EntityQuery/EntityHome. Basically, I have refactored out the following code into a EntityQuery defined in XML.

      final Query query = mEntityManager.createQuery("SELECT e FROM Day e WHERE e.date = ?1 AND e.customer = ?2");
       Day day = null;
       query.setParameter(1, pDate.toCalendar(LocaleSelector.instance().
       query.setParameter(2, pCustomer);

      The problem now is, that the transaction get's rolled back despite I have catched the NoResultException what was not the case before.

      Did I miss something?

          public Boolean hasDay(final DateTime pDate, final Customer pCustomer) {
              Validate.notNull(pDate, "Argument pDate is mandatory");
              Validate.notNull(pCustomer, "Argument pCustomer is mandatory");
              Boolean hasDay = Boolean.FALSE;
              if (null != loadDay(pCustomer, pDate)) {
                  hasDay = Boolean.TRUE;
              return hasDay;
          public Day loadDay(final Customer pCustomer, final DateTime pDate) {
              Validate.notNull(pCustomer, "Argument pCustomer is mandatory");
              Validate.notNull(pDate, "Argument pDate is mandatory");
              try {
                  mSelectedDay = mDayQuery.getSingleResult();
              } catch (final NoResultException pException) {
                  mLog.debug("Day (date=#0) not found.", pException, pDate);
              } catch (final NonUniqueResultException pException) {
                  mLog.error("Day (date=#0) more than one found!", pException, pDate);
              return mSelectedDay;