首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法findOne(Long)未定义为PersonRepository类型

方法findOne(Long)未定义为PersonRepository类型
EN

Stack Overflow用户
提问于 2019-07-24 13:36:34
回答 2查看 3.7K关注 0票数 0

我正试图用Springboot.However构建一个简单的博客应用程序,现在我面临的问题是“findOne(Long)是未定义的PersonRepository类型的方法”,当我尝试使用findOne作为我的service.java.Below时,我就是这样做的。

我试图在存储库中创建对象,表示findOne和save.However没有帮助

PersonRepository.java

代码语言:javascript
复制
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

代码语言:javascript
复制
@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问题,当我试图运行该应用程序时,它会显示一个错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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。 返回:对具有给定标识符的实体的引用。

票数 0
EN

Stack Overflow用户

发布于 2019-07-24 13:43:30

请检查您正在使用的Spring版本。可能是你的findOnefindById取代了。

因此,您的存储库将变成:

代码语言:javascript
复制
public Person findByEmail(String email);


     public Person findById(Long id);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57184276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档