diff --git a/src/main/java/com/retrip/crew/application/out/repository/CrewDemandRepository.java b/src/main/java/com/retrip/crew/application/out/repository/CrewDemandRepository.java index 9d9f8d9..b8362fa 100644 --- a/src/main/java/com/retrip/crew/application/out/repository/CrewDemandRepository.java +++ b/src/main/java/com/retrip/crew/application/out/repository/CrewDemandRepository.java @@ -10,7 +10,7 @@ import java.util.Optional; import java.util.UUID; -public interface CrewDemandRepository extends JpaRepository { +public interface CrewDemandRepository extends ReadRepository { Page findByCrewIdAndStatus(UUID crewId, DemandStatus pending, Pageable pageRequest); @Query("select d, c from Demand d join fetch d.crew c where d.id = :demandId and c.id = :crewId") diff --git a/src/main/java/com/retrip/crew/application/out/repository/CrewMemberRepository.java b/src/main/java/com/retrip/crew/application/out/repository/CrewMemberRepository.java index c4151cc..68f494e 100644 --- a/src/main/java/com/retrip/crew/application/out/repository/CrewMemberRepository.java +++ b/src/main/java/com/retrip/crew/application/out/repository/CrewMemberRepository.java @@ -4,6 +4,6 @@ import java.util.UUID; import org.springframework.data.jpa.repository.JpaRepository; -public interface CrewMemberRepository extends JpaRepository { +public interface CrewMemberRepository extends ReadRepository { int countByCrewId(UUID crewId); } diff --git a/src/main/java/com/retrip/crew/application/out/repository/ReadRepository.java b/src/main/java/com/retrip/crew/application/out/repository/ReadRepository.java new file mode 100644 index 0000000..055d52a --- /dev/null +++ b/src/main/java/com/retrip/crew/application/out/repository/ReadRepository.java @@ -0,0 +1,70 @@ +package com.retrip.crew.application.out.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.NoRepositoryBean; + +import java.util.List; + +@NoRepositoryBean +public interface ReadRepository extends JpaRepository { + + @Override + default S save(S entity) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default S saveAndFlush(S entity) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default List saveAllAndFlush(Iterable entities) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteAllInBatch(Iterable entities) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteAllByIdInBatch(Iterable ids) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteAllInBatch() { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default List saveAll(Iterable entities) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteById(ID id) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void delete(T entity) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteAllById(Iterable ids) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteAll(Iterable entities) { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } + + @Override + default void deleteAll() { + throw new UnsupportedOperationException("해당 Repository는 Read만 가능합니다."); + } +}