Реализация существующего интерфейса с аннотацией @query

Я реализую интерфейс в своем проекте (проект Spring MVC), который имеет десять методов. Я реализовал два метода и хочу, чтобы Spring продолжал использовать интерфейс для запроса базы данных, если не реализованы все методы. Интерфейс имеет аннотацию @Query и работает нормально, но идея состоит в том, чтобы реализовать метод с помощью построителя критериев.

Мой интерфейс

@Repository
public interface TagDAO extends JpaRepository<Tag, Integer> {
    @Query("SELECT count(*) from Tag t WHERE t.isActive = true")
    public Long getTagCount() throws DataAccessException;
    @Query("SELECT t from Tag t WHERE t.tagName = :tagName")
    public Tag findByTagName(@Param("tagName") String tagName) throws 
    DataAccessException;
    ...........
    rest of the methods
}

Я реализовал три метода в классе TagDAOImpl, но хочу, чтобы реализация не использовалась в моем проекте, пока реализация не будет завершена. Есть ли способ принудительно использовать интерфейс, пока я не завершу реализацию?

Чтобы принудительно реализовать методы, просто определите репозиторий class.

NiVeR 30.07.2018 20:57

Не могли бы вы уточнить?

shelholmes221 30.07.2018 21:03

Если вы предоставляете конкретную реализацию класса репозитория, тогда должны быть реализованы оба метода.

NiVeR 30.07.2018 21:04
если реализация не завершена: зачем вам вообще добавлять незавершенную реализацию в ветку master / production / stable? Только не надо. Добавьте его, когда он будет готов, соревнуйтесь и проверяйте.
JB Nizet 30.07.2018 21:06

Потому что я сказал два метода, но их 10, и я не могу реализовать все 10 и протестировать их за один раз. Так что я думал делать это в группах по 2-3 человека за раз.

shelholmes221 30.07.2018 21:08

Но полные методы в классе Impl, а не пользовательские методы оставьте в интерфейсе. Я не понимаю, в чем проблема.

JB Nizet 30.07.2018 21:14

Проблема в том, что когда я реализую, мне приходится перезаписывать методы без реализации. Сейчас функциональность ломается из-за незавершенной реализации. Итак, я подумал, смогу ли я принудительно использовать интерфейс, пока я не завершу все методы, которые не нарушат функциональность, и мой код тоже будет работать.

shelholmes221 30.07.2018 21:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
214
0

Другие вопросы по теме