是什么导致"找不到类型属性"弹簧数据jpa错误

Pet*_*_ch 7 spring jpa spring-data

错误找不到类型为com.gridsearch.entities.Film的属性find

我的存储库

package com.gridsearch.repository;


    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    import org.springframework.data.repository.CrudRepository;

    import com.gridsearch.entities.Film;
    public interface FilmRepository extends CrudRepository<Film,Short>{

        public Page<Film> findAll(Pageable page);
        public Film findOne(short Id);

     }
Run Code Online (Sandbox Code Playgroud)

我的服务

package com.gridsearch.service;


import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.gridsearch.entities.Film;

public interface FilmService {
    public Page<Film> allFilms(Pageable page);
    public Film findOne(int Id);

}
Run Code Online (Sandbox Code Playgroud)

我的服务实施

package com.gridsearch.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.gridsearch.entities.Film;
import com.gridsearch.repository.FilmRepository;

@Repository
public class FilmServiceImpl implements FilmService{
    @Autowired
    private FilmRepository repository;
    @Transactional
    public Page<Film> allFilms(Pageable page) {
        return  repository.findAll(page);

    }
    @Override
    public Film findOne(int id) {
        return repository.findOne((short) id);
    }


}
Run Code Online (Sandbox Code Playgroud)

Ken*_*han 7

它应该是Short代替short:

public Film findOne(Short Id);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您可以简单地扩展PagingAndSortingRepository已经提供方法的方法findAll(Pageable page):

public interface FilmRepository extends PagingAndSortingRepository<Film,Short>{

}
Run Code Online (Sandbox Code Playgroud)