gpt4 book ai didi

spring-boot - QueryByExampleExecutor 类型中的方法 findOne(Example) 不适用于参数 (Long)

转载 作者:行者123 更新时间:2023-12-04 03:07:43 25 4
gpt4 key购买 nike

find 方法对我不起作用,但在其他项目中工作正常。

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

import com.example.demo.entities.Contact;

public interface ContactRepository extends JpaRepository<Contact, Long>{

}

在我的 Controller 中,我调用了 find 一个,但给出了工作。
@RequestMapping(value="/contact/{id}",method=RequestMethod.GET)
public Contact getContact(@PathVariable Long id){
return repo.findOne(id); //here give a error
}

最佳答案

一些 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);

有关哪些方法被重命名的更多信息,请参阅此博客 improved-naming-for-crud-repository-methods

仍然有一个 findOne 方法,但这是来自
public interface QueryByExampleExecutor<T> {
<S extends T> Optional<S> findOne(Example<S> example);

这也是 SimpleJpaRepository 的一个接口(interface)。所以这就是你得到错误的原因,因为这个方法等待一个示例作为参数。

关于spring-boot - QueryByExampleExecutor<Contact> 类型中的方法 findOne(Example<S>) 不适用于参数 (Long),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51027002/

25 4 0