/**
*
*/
package net.conselldemallorca.helium.v3.core.repository;
import java.util.Collection;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import net.conselldemallorca.helium.core.model.hibernate.Entorn;
import net.conselldemallorca.helium.core.model.hibernate.ExpedientTipus;
/**
* Especifica els mètodes que s'han d'emprar per obtenir i modificar la
* informació relativa a un tipus d'expedient que està emmagatzemat a dins
* la base de dades.
*
* @author Limit Tecnologies <limit@limit.es>
*/
public interface ExpedientTipusRepository extends JpaRepository<ExpedientTipus, Long> {
List<ExpedientTipus> findByEntorn(Entorn entorn);
List<Long> findIdByEntornId(Long entornId);
List<ExpedientTipus> findByEntornOrderByNomAsc(Entorn entorn);
List<ExpedientTipus> findByEntornOrderByCodiAsc(Entorn entorn);
ExpedientTipus findByEntornAndCodi(Entorn entorn, String codi);
ExpedientTipus findByEntornAndId(Entorn entorn, Long id);
ExpedientTipus findById(Long expedientTipusId);
/*Entitat findByCif(String cif);
@Query( "select " +
" eu " +
"from " +
" EntitatUsuari eu " +
"where " +
" eu.entitat.id = ?1 " +
"and eu.usuari.nif = ?2")
EntitatUsuari findUsuariAmbNif(Long id, String nif);*/
@Query( "from ExpedientTipus e " +
"where " +
" e.entorn = :entorn " +
"and e.id in (:tipusPermesosIds) " +
"and (:esNullFiltre = true or lower(e.nom) like lower('%'||:filtre||'%') or lower(e.codi) like lower('%'||:filtre||'%')) ")
Page<ExpedientTipus> findByFiltreGeneralPaginat(
@Param("entorn") Entorn entorn,
@Param("tipusPermesosIds") Collection<Long> tipusPermesosIds,
@Param("esNullFiltre") boolean esNullFiltre,
@Param("filtre") String filtre,
Pageable pageable);
}