我尝试使用Spring Boot 3.0.2和Spring cloud构建微服务。我尝试构建一个连接到Docker上运行的Postgres数据库的微服务。我收到以下错误:
未满足的依赖项异常:创建文件[/用户/.../客户/客户控制器. class]中定义的名为"customerController"的Bean时出错:通过构造函数参数0表示的未满足的依赖项:创建在文件[/Users/...customer/CustomerService.class]中定义了名称为"customerService"的Bean时出错:通过构造函数参数0表示的未满足的依赖项:创建在com. ioannispriovolos. customer中定义的名为"customerRepository"的Bean时出错。在JpaRepositoriesRegistrar上声明的@EnableJpaRepositories中定义的客户存储库。不是托管类型:类别com. ioannispriovolos.客户.客户
原因:java. lang.非法参数异常:不是托管类型:类别com. ioannispriovolos.客户.客户
我在堆栈溢出中搜索了很多类似的问题,但没有一个给我解决方案。我提供了CustomerController。
package com.ioannispriovolos.customer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("api/v1/customers")
public record CustomerController (CustomerService customerService){
@PostMapping
public void registerCustomer(@RequestBody CustomerRegistrationRequest customerRegistrationRequest) {
log.info("new customer registration {}", customerRegistrationRequest);
customerService.registerCustomer(customerRegistrationRequest);
}
}
如果你需要更多的代码从我这边请通知我,我会编辑的问题。我提供的客户类后,在评论中提到。
package com.ioannispriovolos.customer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Customer {
@Id
@SequenceGenerator(
name = "customer_id_sequence",
sequenceName = "customer_id_sequence"
)
@GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "customer_id_sequence"
)
private Integer id;
private String firstName;
private String lastname;
private String email;
}
1条答案
按热度按时间rt4zxlrg1#
Spring Boot JPA模块作为Spring Boot 3发行版的一部分,转而使用Jakarta Persistence API而不是
javax.persistence.api
,这就是@EntityScan
找不到实体的原因。阅读文档
Jakarta Dependency
将该依赖项添加到您的pom并更改实体中的导入
将
import javax.persistence.*;
更改为import jakarta.persistence.*;