Java tutorial
package nc.noumea.mairie.appock.dao.impl; /*- * #%L * Logiciel de Gestion des approvisionnements et des stocks des fournitures administratives de la Mairie de Nouma * %% * Copyright (C) 2017 Mairie de Nouma, Nouvelle-Caldonie * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ import java.util.List; import javax.persistence.NoResultException; import javax.persistence.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import nc.noumea.mairie.appock.core.utility.AppockUtil; import nc.noumea.mairie.appock.dao.PersistentManager; import nc.noumea.mairie.appock.dao.SousFamilleDao; import nc.noumea.mairie.appock.entity.Catalogue; import nc.noumea.mairie.appock.entity.SousFamille; @Repository("sousFamilleDao") public class SousFamilleDaoImpl implements SousFamilleDao { @Autowired protected PersistentManager<SousFamille> persistentManager; @Override public SousFamille findByLibelleAndCatalogue(String libelle, Catalogue catalogue) { // @formatter:off String jpaQuery = " SELECT sousFamille FROM SousFamille sousFamille " + " left join sousFamille.famille famille " + " left join famille.catalogue catalogue " + " WHERE sousFamille.libelle = :libelle " + " AND catalogue = :catalogue"; // @formatter:on Query query = persistentManager.getEntityManager().createQuery(jpaQuery); AppockUtil.setParameter(query, "libelle", libelle); AppockUtil.setParameter(query, "catalogue", catalogue); try { return (SousFamille) query.getSingleResult(); } catch (NoResultException e) { return null; } } @Override public List<SousFamille> findAllOrderByLibelle(Catalogue catalogue) { if (catalogue == null) { return null; } // @formatter:off String jpaQuery = " SELECT sousFamille FROM SousFamille sousFamille " + " left join sousFamille.famille famille " + " left join famille.catalogue catalogue " + " WHERE catalogue = :catalogue" + " ORDER BY sousFamille.libelle"; // @formatter:on Query query = persistentManager.getEntityManager().createQuery(jpaQuery); AppockUtil.setParameter(query, "catalogue", catalogue); try { return query.getResultList(); } catch (NoResultException e) { return null; } } }