【发布时间】:2022-09-29 18:35:09
【问题描述】:
这是我第一次在 Spring Boot 中创建 api,我正在尝试创建事务 api。当我运行应用程序时,我收到此错误描述: TransactionService.transactionService.modal.TransactionRequest 中构造函数的参数 0 需要找不到类型为 \'int\' 的 bean。 行动: 考虑在你的配置中定义一个 \'int\' 类型的 bean。
模态包: 交易实体
@Getter
@Setter
@Builder
@Entity
public class TransactionEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int transactionId;
@NotNull
@Column(unique = true)
private UUID externalId;
@NotNull
private int userId;
@NotNull
private int merchantId;
@NotNull
private int clientReferenceId;
@NotNull
private double amount;
@Enumerated(EnumType.STRING)
@NotNull
private TransactionStatus status;
@NotNull
private String createdBy;
private String updatedBy;
@NotNull
private LocalDateTime createdAt;
@NotNull
private LocalDateTime updatedAt;
}
事务请求
@Component
@Data
@Builder
public class TransactionRequest {
private int userId;
private int merchantId;
private int clientReferenceId;
private double amount;
private String createdBy;
}
事务响应
@Component
@Data
@Builder
public class TransactionResponse {
private int userId;
private int merchantId;
private int clientReferenceId;
private double amount;
private LocalDateTime createdAt;
private TransactionStatus status;
}
交易道
@Component
// Dao class
public class TransactionDao {
TransactionRepository transactionRepository;
TransactionEntity transactionEntity;
public TransactionResponse createTransaction(TransactionRequest transactionRequest){
LocalDateTime cuurentTime = LocalDateTime.now();
TransactionEntity.builder().userId(transactionRequest.getUserId())
.merchantId(transactionRequest.getMerchantId())
.clientReferenceId(transactionRequest.getClientReferenceId())
.amount(transactionRequest.getAmount())
.createdBy(transactionRequest.getCreatedBy());
transactionEntity.setCreatedAt(cuurentTime);
transactionEntity.setUpdatedAt(cuurentTime);
transactionEntity.setExternalId(UUID.randomUUID());
transactionEntity.setStatus(TransactionStatus.CREATED);
transactionRepository.save(transactionEntity);
return TransactionResponse.builder().status(transactionEntity.getStatus())
.createdAt(transactionEntity.getCreatedAt()).build();
}
}
事务服务
@Service
public class TransactoinService {
@Autowired
public TransactionDao transactionDao;
public TransactionResponse createTransaction(TransactionRequest transactionRequest){
return transactionDao.createTransaction(transactionRequest);
}
}
事务控制器
@RestController
public class TransactionController {
@Autowired
TransactoinService transactoinService;
@PostMapping
TransactionResponse createTransaction(@RequestBody TransactionRequest transactionRequest){
return transactoinService.createTransaction(transactionRequest);
}
}
标签: spring-boot spring-data-jpa