Проблема реализации библиотеки репозитория Spring

Я использую библиотеку JDBC данных Spring для реализации своего DAO. Я очень новичок в репозитории данных Spring. Ниже приведена моя ошибка.

@Repository
public class UserRepository extends CrudRepository<User, Integer> {}

Ошибка: тип CrudRepository не может быть суперклассом UserRepository; суперкласс должен быть классом

Я использую Spring Framework версии 5.1.3 и spring-data-jdbc 1.0.3.


person nicholas    schedule 12.12.2018    source источник
comment
Эта библиотека больше не поддерживается. Вы должны серьезно подумать об использовании простого Spring Data API.   -  person davidxxx    schedule 12.12.2018
comment
spring.io/projects/spring-data-jdbc   -  person Alan Hay    schedule 12.12.2018
comment
Можете ли вы предоставить ссылку или пример того, как использовать этот Spring-data-jdbc? Использовать официальную документацию очень сложно.   -  person nicholas    schedule 12.12.2018
comment
ваш UserRepository должен быть в interface, а не в class. Это также то, о чем говорит вам ошибка.   -  person M. Deinum    schedule 12.12.2018
comment
Если это интерфейс, это противоречит ответам Лорелолора, но я проверил официальный документ, в котором нам нужно реализовать этот метод сейчас.   -  person nicholas    schedule 12.12.2018
comment
В моем ответе была ошибка, я ее исправил. UserRepository должен быть интерфейсом, а не классом.   -  person Lorelorelore    schedule 12.12.2018


Ответы (2)


CrudRepository предоставляет сложные функциональные возможности CRUD для управляемого класса сущностей.

 public interface CrudRepository<T, ID extends Serializable>
        extends Repository<T, ID> {

    <S extends T> S save(S entity);
    T findOne(ID primaryKey);
    Iterable<T> findAll();
    Long count();                                                                                                                   
    void delete(T entity);                                                                                                  
    boolean exists(ID primaryKey)
}
  • Сохраняет заданный объект.
  • Возвращает сущность, идентифицированную заданным идентификатором.
  • Возвращает все сущности.
  • Возвращает количество сущностей.
  • Удаляет указанный объект.
  • Указывает, существует ли сущность с данным идентификатором.
person Badr Kacimi    schedule 12.12.2018
comment
Как реализовать интерфейс? Какой-то конкретный пример? - person nicholas; 12.12.2018
comment
На этой странице будет показан пример Spring Boot CrudRepository concretepage.com/spring-boot /spring-boot-crudrepository-пример - person Badr Kacimi; 12.12.2018
comment
**1общедоступный интерфейс YourClassRepository расширяет CrudRepository‹YourClass, Long› **2Создание и использование CrudRepository @Autowired private YourClassRepository articleRepository; **3Список методов пользовательского репозитория‹Ваш класс› findByTitleAndCategory(String title, String category); @Query (ВЫБЕРИТЕ ИЗ YourClassTable, где a.title=:title и a.category=:category) - person Badr Kacimi; 12.12.2018
comment
Я понимаю ваши ответы, но я использую это в проекте selenium testng. Как создать соединение в контексте Spring (application.properties)? Как попросить Spring прочитать мой файл свойств и подключить базу данных? Это проще в Spring boot, но не в проекте selenium testng. Какова ваша мысль? - person nicholas; 12.12.2018
comment
Требуется ли использовать Classpathapplicationcontext или другой подход? Если да, можете привести пример? - person nicholas; 12.12.2018
comment
Проверьте это на весеннем сайте: spring.io/blog/ 2014/03/26/spring-mvc-test-with-webdriver - person Badr Kacimi; 12.12.2018
comment
Подход с веб-драйвером Spring мне не подходит, потому что я использую веб-драйвер Selenium. Каково ваше предложение и пример кода? - person nicholas; 13.12.2018
comment
Как интегрировать автоподключенную функцию Spring Framework в любое настольное/TestNG-приложение? - person nicholas; 13.12.2018

Если вы ищете простой запрос для получения всех данных из вашей базы данных, просто используйте Spring CrudRepository:

@Repository
public interface UserRepository extends CrudRepository<User, Integer> {
}

Чтобы получить ваши данные, просто используйте метод findAll, уже присутствующий в CrudRepository:

Iterable<User> users = userRepository.findAll();
person Lorelorelore    schedule 12.12.2018
comment
Как настроить запрос на выбор, если я хочу выбрать пользователя по адресу электронной почты? - person nicholas; 12.12.2018
comment
Есть много способов сделать это, вы должны взглянуть на учебник Spring Data: spring.io/guides/gs/accessing-data-jpa - person Lorelorelore; 12.12.2018
comment
Я пытаюсь реализовать в соответствии с вашим упоминанием документа, но он отображает ошибку. Смотрите мой оригинальный пост. - person nicholas; 12.12.2018