Files
ContabilidadSaPolar/backend/src/main/java/com/sapolar/document/DocumentRepository.java
T

32 lines
1.4 KiB
Java

package com.sapolar.document;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface DocumentRepository extends JpaRepository<Document, Long> {
@Query("SELECT d FROM Document d JOIN d.entities e WHERE e.entityType = :entityType AND e.entityId = :entityId")
List<Document> findByEntityTypeAndEntityId(@Param("entityType") String entityType, @Param("entityId") Long entityId);
List<Document> findByDocumentTypeId(Integer documentTypeId);
@Query("SELECT d FROM Document d WHERE d.documentType.id = :typeId")
List<Document> findByDocumentType(@Param("typeId") Integer typeId);
@Query("SELECT d FROM Document d JOIN d.entities e WHERE " +
"(:entityType IS NULL OR e.entityType = :entityType) AND " +
"(:entityId IS NULL OR e.entityId = :entityId) AND " +
"(:documentTypeId IS NULL OR d.documentType.id = :documentTypeId) AND " +
"(:originalName IS NULL OR LOWER(d.originalName) LIKE LOWER(CONCAT('%', :originalName, '%')))")
List<Document> searchDocuments(
@Param("entityType") String entityType,
@Param("entityId") Long entityId,
@Param("documentTypeId") Integer documentTypeId,
@Param("originalName") String originalName);
}