Поскольку вы используете Spring Data JPA, вы можете объявить свой собственный интерфейс общего репозитория своими методами и избежать пользовательского запроса.Тот же подход используется CrudRepository
для предоставления дополнительных методов, которых нет в Repsitory
.
Например, вы можете объявить:
public interface SharedRepository<T, ID> extends CrudRepository<T, ID> {
List<T> findByStartDateAndEndDate(LocalDate startDate, LocalDate endDate);
}
Затем расширить этот новый интерфейс для ваших сущностей
@Repository
public interface PersonRepisotry extends SharedRepository<Person, Long> {
}
@Repository
public interface RoomRepository extends SharedRepository<Room, Long> {
}
И PersonRepository
, и RoomRepository
будут иметь findByStartDateAndEndDate
метод.