Spring boot 弹簧靴&x2B;Groovy+;JPA,未能注入JPA

Spring boot 弹簧靴&x2B;Groovy+;JPA,未能注入JPA,spring-boot,groovy,spring-data-jpa,Spring Boot,Groovy,Spring Data Jpa,以下是我的app.groovy代码: package org.test import javax.persistence.* import org.springframework.data.jpa.repository.JpaRepository @Grab('spring-boot-starter-data-jpa') @Grab('mysql-connector-java') @Entity @Table (name="owner") class Owner { @Id

以下是我的app.groovy代码:

package org.test

import javax.persistence.*
import org.springframework.data.jpa.repository.JpaRepository

@Grab('spring-boot-starter-data-jpa')
@Grab('mysql-connector-java')

@Entity
@Table (name="owner")
class Owner {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    Long ownerId;
    @Column(name = 'Name')
    String name;
    @Column(name = 'DateOfBirth')
    Date dateOfBirth;
    @Column(name = 'Address')
    String address;

    @Override
    String toString() {
        return String.format(
                "Owner[id=%d, Name='%s', DateOfBirth='%s']",
                id, name, dateOfBirth);
    }
}

interface OwnerRepository extends JpaRepository<Owner, Long> {
    List<Owner> findByName(String name);
}

class Runner implements CommandLineRunner {
    @Autowired
    private DataSource ds;
    @Autowired
    private OwnerRepository repository

    void run(String... args) {
        for (owner in repository.findAll()) {
            println owner
        }
    }
}
运行$spring run app.groovy后,我收到以下错误消息:

Field repository in org.test.Runner required a bean of type 'org.test.OwnerRepository' that could not be found.


Action:

Consider defining a bean of type 'org.test.OwnerRepository' in your configuration.

...

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'runner': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type 'org.test.OwnerRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
我曾尝试使用相同的代码语句测试InjectJDBCTemplate,但效果很好,所以我不知道这些代码中有什么错误


请给我一些建议,非常感谢

实际上,问题是在
Runner
类的顶部也没有
@SpringBootApplication


您的
所有者存储库
顶部缺少
@Repository
注释。可能就是这样。

您好,谢谢您的回复,但是当我添加@Repository注释时,我收到了以下新的错误消息,Spring启动版本是v2.0.0.RELEASE:org.springframework.beans.factory.BeanCreationException:创建名为“ownerRepository”的bean时出错:bean实例化失败;嵌套异常为org.springframework.beans.beanstantiationException:未能实例化[org.test.OwnerRepository]:指定的类是接口,因此需要在Runner类上添加@EnableJpaRepositories注释。
@SpringBootApplication
应添加到Runner类的顶部,而不是自己的存储库。感谢您的帮助,我添加了ⓐOwnerRepository和add上的存储库批注ⓐSpringBoot应用程序,ⓐ在Runner上启用JParePositories批注。然后出现新错误:org.springframework.beans.factory.beancreatitionException:创建名为“ownerRepository”的bean时出错:bean实例化失败;嵌套异常为org.springframework.beans.beanstantiationException:未能实例化[org.test.OwnerRepository]:指定的类是接口Spring启动版本为v2.0.0.RELEASE
Field repository in org.test.Runner required a bean of type 'org.test.OwnerRepository' that could not be found.


Action:

Consider defining a bean of type 'org.test.OwnerRepository' in your configuration.

...

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'runner': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type 'org.test.OwnerRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}