LanguageDAOImpl.java
package org.itracker.persistence.dao;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.itracker.model.Language;
import java.util.List;
/**
 *
 */
public class LanguageDAOImpl extends BaseHibernateDAOImpl<Language>
        implements LanguageDAO {
    public Language findById(Integer id) {
        Language language;
        try {
            language = (Language) getSession().get(Language.class, id);
        } catch (HibernateException ex) {
            throw convertHibernateAccessException(ex);
        }
        return language;
    }
    public Language findByKeyAndLocale(String key, String locale) {
        Language language;
        try {
            Query query = getSession().getNamedQuery(
                    "LanguagesByKeyAndLocaleQuery");
            query.setString("key", key);
            query.setString("locale", locale);
            language = (Language) query.uniqueResult();
        } catch (HibernateException ex) {
            throw convertHibernateAccessException(ex);
        }
        if (language == null) {
            throw new NoSuchEntityException("No language item for "
                    + key + " " + locale);
        }
        return language;
    }
    @SuppressWarnings("unchecked")
    public List<Language> findByKey(String key) {
        List<Language> languages;
        try {
            Query query = getSession().getNamedQuery("LanguagesByKeyQuery");
            query.setString("key", key);
            languages = query.list();
        } catch (HibernateException ex) {
            throw convertHibernateAccessException(ex);
        }
        return languages;
    }
    @SuppressWarnings("unchecked")
    public List<Language> findByLocale(String locale) {
        List<Language> languages;
        try {
            Query query = getSession().getNamedQuery("LanguagesByLocaleQuery");
            query.setString("locale", locale);
            languages = query.list();
        } catch (HibernateException ex) {
            throw convertHibernateAccessException(ex);
        }
        return languages;
    }
}