我正试图用Springboot.However构建一个简单的博客应用程序,现在我面临的问题是“findOne(Long)是未定义的PersonRepository类型的方法”,当我尝试使用findOne作为我的service.java.Below时,我就是这样做的。
我试图在存储库中创建对象,表示findOne和save.However没有帮助
PersonRepository.java
package PersonRepository.javaio.javabrains.repository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import io.javabrains.Entity.Person;
@Repository
public interface PersonRepository extends CrudRepository<Person,Long>{
public Person findByEmail(String email);
/*
* public Person findOne(Long id);
*
* public Iterable<Person> findAll();
*
* public Person save(Person person);
*/PersonService.java
@Service
public class PersonService {
@Autowired
private PersonRepository personRepository;
public Object findAll(){
return personRepository.findAll();
}
public Person findById(Long id){
return personRepository.findOne(id);
}我预计删除注释块将解决issue.However问题,当我试图运行该应用程序时,它会显示一个错误
发布于 2019-07-24 13:58:34
最好使用JpaRepository (扩展CRUD存储库)
代替findOne(),您可以使用getOne()或findById() (可选)
findById()
根据实体的id检索实体。 参数:id不能为null。 返回:如果找不到给定id或Optional#empty()的实体 抛出:IllegalArgumentException-如果id为null。
getOne()
返回具有给定标识符的实体的引用。根据JPA持久性提供程序是如何实现的,这很可能总是返回一个实例并在第一次访问时抛出一个javax.persistence.EntityNotFoundException。其中一些人会立即拒绝无效的标识。 参数:id不能为null。 返回:对具有给定标识符的实体的引用。
发布于 2019-07-24 13:43:30
请检查您正在使用的Spring版本。可能是你的findOne被findById取代了。
因此,您的存储库将变成:
public Person findByEmail(String email);
public Person findById(Long id);https://stackoverflow.com/questions/57184276
复制相似问题