From e91b7b4038ad0f29f62eaac6dfecbc25f5731c07 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Sat, 13 Jan 2024 17:27:53 -0300 Subject: [PATCH] [R9] Consultation jpa repository with two custom methods to check for consultation by patient or doctor and date --- .../repositories/ConsultationRepository.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/domain/repositories/ConsultationRepository.java diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/repositories/ConsultationRepository.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/repositories/ConsultationRepository.java new file mode 100644 index 0000000..3c9d324 --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/repositories/ConsultationRepository.java @@ -0,0 +1,45 @@ +package com.mirna.hospitalmanagementapi.domain.repositories; + +import java.time.LocalDateTime; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import com.mirna.hospitalmanagementapi.domain.entities.Consultation; + +/** + * Repository interface for retrieving and manipulating all Consultation objects using their unique Long identifier. +* + * @author Mirna Gama +* @version 1.0 +*/ + +public interface ConsultationRepository extends JpaRepository { + + /** + * + * @param patientId The patient's id from the consultation + * @param consultationDate The date of the consultation + * @return The corresponding consultation if successful, or null if it is non-existent + */ + @Query(""" + select c from Consultation c + where c.patient.id = :patientId + and c.consultationDate = :consultationDate + """) + Consultation findConsultationByPatientAndDate(Long patientId, LocalDateTime consultationDate); + + /** + * + * @param doctorId The doctor's id from the consultation + * @param consultationDate The date of the consultation + * @return The corresponding consultation if successful, or null if it is non-existent + */ + @Query(""" + select c from Consultation c + where c.doctor.id = :doctorId + and c.consultationDate = :consultationDate + """) + Consultation findConsultationByDoctorAndDate(Long doctorId, LocalDateTime consultationDate); + +}