我正在学习spring,正在做一个基础项目,该项目查询表并通过服务显示行。
在构建项目时,我遇到以下错误:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'personaService' defined in file [D:\Daniel\Proyecto-Catalogo\backend\cyberbuzon\target\classes\com\verasoftec\cyberbuzon\negocio\services\PersonaService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personaRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.verasoftec.cyberbuzon.modelo.Persona com.verasoftec.cyberbuzon.negocio.repository.PersonaRepository.edit(com.verasoftec.cyberbuzon.modelo.Persona)! No property edit found for type Persona!
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218) ~[spring-beans-5.1.9.RELEASE.jar:5.1.9.RELEASE]
...
我的课:
我不明白我在做什么错。
最佳答案
我认为您忘记了创建PersonaService
接口,而是将预期的方法打包到了PersonaRepository
中。而且,您所使用的方法的问题在于它们没有遵循JpaRepository
的模式。查看this文章,了解如何在PersonaRepository
中声明方法。
要解决您的问题,您可以轻松地删除PersonaRepository
中的方法。
public interface PersonaRepository extends JpaRepository<Persona, Integer> { }
您已经在
PersonaRepository
(PersonaService
)中使用了正确的personaRepository.findAll()
方法,因此您只需要将从PersonaRepository
中删除的方法添加到PersonaService
中,并从您的方法中实现相应的方法像findById(int id)
,save(Persona persona)
和delete(int id)
这样的存储库。关于java - 构建项目spring org.springframework.beans.factory.UnsatisfiedDependencyException时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57879226/