blob: 1a7540c600cb2750810d00bd43208f6c4cd9daa2 [file] [log] [blame]
/*
*******************************************************************************
* Copyright (c) 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************
*/
package org.eclipse.openk.contactbasedata.repository;
import org.eclipse.openk.contactbasedata.model.TblAddress;
import org.eclipse.openk.contactbasedata.model.VwDetailedContact;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.UUID;
public interface DetailedContactRepository extends PagingAndSortingRepository<VwDetailedContact, Long> {
Page<VwDetailedContact> findAll(Pageable pageable);
@Query( "select dc from VwDetailedContact dc where"
+ "(COALESCE(:contactType) is null or COALESCE(:contactType) is not null AND dc.contactType=:contactType)"
+ " and (COALESCE(:personType) is null or COALESCE(:personType) is not null AND dc.personTypeUuid=:personType)"
+ " and (COALESCE(:searchText) is null or COALESCE(:searchText) is not null AND dc.searchfield like %:searchText%)")
Page<VwDetailedContact> findByFilter(@Param("contactType")String contactType,
@Param("personType") UUID personType,
@Param("searchText") String searchText,
Pageable pageable);
@Query( "select dc from VwDetailedContact AS dc, TblContact AS c "
+ "inner join c.assignments a where "
+ "dc.fkContactId = c.id and"
+ "(COALESCE(:modulName) is null or COALESCE(:modulName) is not null AND a.modulName =:modulName)")
Page<VwDetailedContact> findByModulName(@Param("modulName")String modulName, Pageable pageable);
}