@Override public X getSingleResult() { List<X> resultList = getResultList(); if (resultList.isEmpty()) { throw new NoResultException(); } else if (resultList.size() > 1) { throw new NonUniqueResultException("Query produced " + resultList.size() + " results (expected 1)"); } return resultList.get(0); }