Метод findOne (Пример <S>) в типе QueryByExampleExecutor <Contact>не применим для аргументов (Long) - PullRequest
0 голосов
/ 25 июня 2018

Методы поиска не работают для меня, но в других проектах работают нормально.

import org.springframework.data.jpa.repository.JpaRepository;

import com.example.demo.entities.Contact;

public interface ContactRepository extends JpaRepository<Contact, Long>{

}

в моем контроллере я звоню, найди один, но дай работы.

@RequestMapping(value="/contact/{id}",method=RequestMethod.GET)
    public Contact getContact(@PathVariable Long id){
        return repo.findOne(id); //here give a error
    }

1 Ответ

0 голосов
/ 25 июня 2018

Некоторые методы репозитория CRUD были переименованы в Spring Data, и

public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
    T findOne(ID id);

является одним из них.Теперь вы должны использовать

public interface CrudRepository<T, ID> extends Repository<T, ID> {
    Optional<T> findById(ID id);

Для получения дополнительной информации о том, какие методы были переименованы, см. Этот блог улучшенные имена-для-хранилища-методы

Есть ещеметод findOne, но он из

public interface QueryByExampleExecutor<T> {
    <S extends T> Optional<S> findOne(Example<S> example);

, который также является интерфейсом SimpleJpaRepository.Вот почему вы получили свою ошибку, так как этот метод ожидает Пример в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...