当前位置: 首页 > 知识库问答 >
问题:

创建名为“XXX”的bean时出错:通过字段“XXX”表示的未满足的依赖关系

端木元青
2023-03-14

以下是跟踪:

org.springframework.beans.factory.未满足的DependencyException:创建名称为'testController'的bean时出错:通过字段'testDAO'表示的依赖项未满足;嵌套异常org.springframework.beans.factory.BeanCreationException:创建名称为'testDAO'的bean时出错:调用init方法失败;嵌套异常java.lang.IllegalArgumentException:不是托管类型:类模型。测试

...

原因:组织。springframework。豆。工厂BeanCreationException:创建名为“testDAO”的bean时出错:调用init方法失败;嵌套的异常是java。lang.IllegalArgumentException:不是托管类型:类modele。测验

...

原因:java。lang.IllegalArgumentException:不是托管类型:类modele。测验

根据我的理解,根错误是不是托管类型:类模型。测试,这与测试不被识别为实体有关?

这是我的项目:

建筑:http://imgur.com/a/2xsI4

一个pplication.java

@SpringBootApplication
@ComponentScan("boot")
@ComponentScan("dao")
@ComponentScan("modele")
@EnableJpaRepositories("dao")
public class Application {

    public static void main (String[] args){
        SpringApplication.run(Application.class, args);
    }

}

TestDAO。Java语言

@Transactional
public interface TestDAO extends CrudRepository<Test, Long > {

  /**
   * This method will find an User instance in the database by its email.
   * Note that this method is not implemented and its working code will be
   * automagically generated from its signature by Spring Data JPA.
   */
  public Test findByEmail(String email);

}

测验Java语言

@Entity
@Table(name = "test")
public class Test {

    // An autogenerated id (unique for each user in the db)
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @NotNull
    private String email;

    @NotNull
    private String name;

    // Public methods

    public Test() {
    }

    public Test(long id) {
        this.id = id;
    }

    public Test(String email, String name) {
        this.email = email;
        this.name = name;
    }
//setters and getters

如果有任何帮助,我将不胜感激。谢谢

共有1个答案

狄元魁
2023-03-14

使用您当前的设置,您需要添加

@EntityScan("modele")

测试并不是真正的Spring Bean,它是一个JPA实体@ComponentScan查找配置、服务和存储库、控制器和RestController@EntityScan将查找实体。

您可以阅读以下内容:@EntityScan和@ComponentScan之间的区别

如果您移动以下位置,您的配置将更容易:

  • 包根目录的pplication.java:com.domain.project
  • 你的仓库在com.domain.project.dao
  • 您在com.domain.project.domain下的实体。

然后,您就不需要@EntityScan@ComponentScan@EnableJpaRepositories,SpringBoot只会拾取com.domain.project.*中找到的所有内容

 类似资料: