Spring不是受管理的类型类

3

注意:我没有使用Spring Boot

这里所有的错误信息

创建名为'writeData'的bean时出错:通过字段'userRepository'表达的不满足依赖关系,嵌套异常是org.springframework.beans.factory.BeanCreationException:在SpringConfig中声明的@EnableJpaRepositories定义的名为'userRepository'的bean创建失败:调用init方法失败;嵌套异常是java.lang.IllegalArgumentException:不是托管类型:class com.aykut.modal.User

定义在com.aykut.repository.UserRepository中的名为'userRepository'的bean创建失败,在@SpringConfig中声明@EnableJpaRepositories;嵌套异常是java.lang.IllegalArgumentException:不是托管类型:class com.aykut.modal.User

不是托管类型:class com.aykut.modal.User

项目树

User类

@Entity
public class User {
    @Id
    Integer id;
    String name;
    String surname;

    public User(Integer id, String name, String surname) {
        this.id = id;
        this.name = name;
        this.surname = surname;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }
}

Spring配置类

@Configuration
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = {
        "com.aykut.repository"
})
@ComponentScan(basePackages = { "com.aykut"})
public class SpringConfig {
}

用户存储库类

@Repository
public interface UserRepository extends JpaRepository<User, Integer> {

}

我只是尝试使用Spring Batch将数据写入我的Postgres数据库。


1
这表明您的entitymanager设置有误。另外,请从UserRepository中删除@Repository,因为Spring Data使用其他方式来检测存储库。 - M. Deinum
实际上这非常有帮助,我查看了我的JpaConfig文件并编辑了setPackagesToScan方法为: factory.setPackagesToScan(new String[] {"com.aykut.modal"}); 谢谢! - Fatih Aykut
也许当您使用Inteliji的持久化工具生成实体时,还勾选了“生成persistence.xml文件” => 这个文件会导致您的项目出错,请检查并删除此文件。 - nobjta_9x_tq
1个回答

0

我曾经遇到过类似的错误,直到发现我导入了jakarta.persistence.Entity而不是javax.persistence.Entity。一旦我将其更改为javax,所有都可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接