jpa @Autowired无法在Springboot应用程序中将Repostiory注入Controller

gcuhipw9  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(183)
  • 这里我有一个使用JpaRepository的简单Springboot应用程序,我无法将Repository注入控制器。
  • 域名:Amenity,控制器:AmenityController,存储库:AmenityRepository
package com.example.demo.repository;

import com.example.demo.domain.Amenity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.stereotype.Repository;

@Repository
public interface AmenityRepository extends JpaRepository<Amenity, Long> {
}
package com.example.demo.domain;

import lombok.*;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Table(name = "amenity_table")
@Setter
public class Amenity {

    @Id
    @GeneratedValue
    private Long id;
    private String name;
}
package com.example.demo.domain;

import lombok.*;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Table(name = "amenity_table")
@Setter
public class Amenity {

    @Id
    @GeneratedValue
    private Long id;
    private String name;
}

我得到的错误是:
创建名为“amenityController”的bean时出错:通过构造函数参数0表示的依赖项不满足:创建名为“amenityRepositoryChild”的bean时出错
我试过把字段注入改为构造函数注入,但还是不行。我也试过很多不同的方法,但似乎都不管用。

6tqwzwtp

6tqwzwtp1#

问题中的实体似乎重复。也没有提供控制器的代码。
根级别的Bean,用@SpringBootApplication标注,需要配置来扫描仓库。

@SpringBootApplication
@EnableJpaRepositories(basePackages = {"com.company.store.infrastructure.jpa.repository"})
public class StoreJpaApplication {

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

字符串
你能把它添加到实现中去吗?

相关问题