Esempio n. 1
0
  /**
   * Returns the subject corresponding to the given code.
   *
   * @param code The subject code
   * @return The subject corresponding to the given code
   */
  public Subject findByCode(String code) {
    // TODO How to add a case sensitive restriction with Hibernate and MySQL?
    //    List<Subject> subjects = s.createCriteria(Subject.class).add(Restrictions.eq("code",
    // code)).list();

    EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Subject> criteria = criteriaBuilder.createQuery(Subject.class);
    Root<Subject> root = criteria.from(Subject.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.equal(root.get(Subject_.code), code));

    List<Subject> subjects = entityManager.createQuery(criteria).getResultList();

    for (Subject subject : subjects) {
      if (code.equals(subject.getCode())) return subject;
    }

    return null;
  }