Ошибка создания боба с именем 'CloudAccountController'JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка создания боба с именем 'CloudAccountController'

Сообщение Anonymous »

Это мой код, а также ошибка, встречающаяся < /h2>
package com.m2c.chatbot.useraccount.model;

import java.time.LocalDateTime;
import com.m2c.chatbot.useraccount.model.enums.CloudProviderType;
import jakarta.persistence.*;
import lombok.Data;

@Data
@Entity
@Table(name = "cloud_accounts")
public class CloudAccount {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cloud_account_id")
private Long cloudAccountId;

@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;

@Enumerated(EnumType.STRING)
@Column(name = "provider_type")
private CloudProviderType providerType;

@Column(name = "iam_role_name")
private String iamRoleName;

@Column(name = "is_iam_role_active")
private boolean isIamRoleActive;

public boolean getIsIamRoleActive() {
return isIamRoleActive;
}

public void setIsIamRoleActive(boolean isIamRoleActive) {
this.isIamRoleActive = isIamRoleActive;
}

........
}
< /code>
package com.m2c.chatbot.useraccount.service.impl;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.m2c.chatbot.useraccount.*;

import lombok.RequiredArgsConstructor;
@Service
@RequiredArgsConstructor
public class CloudAccountServiceImpl implements CloudAccountService {
private final CloudAccountRepository cloudAccountRepository;
private final UserRepository userRepository;
@Override
@Transactional
public CloudAccountDTO createCloudAccount(Long userId, CreateCloudAccountRequest request) {
User user = userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User not found"));
if (cloudAccountRepository.existsByUserIdAndProviderType(userId, request.getProviderType())) {
throw new IllegalStateException("User already has an account with this provider");
}
CloudAccount cloudAccount = new CloudAccount();
cloudAccount.setUser(user);
cloudAccount.setProviderType(request.getProviderType());
cloudAccount.setIamRoleName(request.getIamRoleName());
cloudAccount.setIsIamRoleActive(true);
cloudAccount = cloudAccountRepository.save(cloudAccount);
return convertToDTO(cloudAccount);
}

@Override
public List getCloudAccountsByUserId(Long userId) {
if (!userRepository.existsById(userId)) {
throw new ResourceNotFoundException("User not found");
}
return cloudAccountRepository.findByUserId(userId).stream()
.map(this::convertToDTO)
.collect(Collectors.toList());
}
@Override
public List getCloudAccountsByUserIdAndProviderType(Long userId, CloudProviderType providerType) {
if (!userRepository.existsById(userId)) {
throw new ResourceNotFoundException("User not found");
}
return cloudAccountRepository.findByUserIdAndProviderType(userId, providerType.name()).stream()
.map(this::convertToDTO)
.collect(Collectors.toList());
}
@Override
@Transactional
public void deleteCloudAccount(Long id) {
if (!cloudAccountRepository.existsById(id)) {
throw new ResourceNotFoundException("Cloud account not found");
}
cloudAccountRepository.deleteById(id);
}

@Override
@Transactional
public CloudAccountDTO updateIamRoleStatus(Long id, boolean isActive) {
CloudAccount cloudAccount = cloudAccountRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Cloud account not found"));

cloudAccount.setIsIamRoleActive(isActive);
cloudAccount = cloudAccountRepository.save(cloudAccount);
return convertToDTO(cloudAccount);
}
private CloudAccountDTO convertToDTO(CloudAccount cloudAccount) {
return CloudAccountDTO.builder()
.cloudAccountId(cloudAccount.getCloudAccountId())
.userId(cloudAccount.getUser().getUserId())
.providerType(cloudAccount.getProviderType())
.iamRoleName(cloudAccount.getIamRoleName())
.isIamRoleActive(cloudAccount.getIsIamRoleActive())
.createdAt(cloudAccount.getCreatedAt())
.build();
}
}
< /code>
package com.m2c.chatbot.useraccount.controller;

import java.net.URI;
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import com.m2c.chatbot.useraccount.dto.CloudAccountDTO;
import com.m2c.chatbot.useraccount.dto.CreateCloudAccountRequest;
import com.m2c.chatbot.useraccount.model.enums.CloudProviderType;
import com.m2c.chatbot.useraccount.service.CloudAccountService;

import lombok.RequiredArgsConstructor;

@RestController
@RequestMapping("/api/v1/cloud-accounts")
@RequiredArgsConstructor
public class CloudAccountController {

private final CloudAccountService cloudAccountService;
@PostMapping("path")
public ResponseEntity createCloudAccount(
@PathVariable Long userId,
@RequestBody CreateCloudAccountRequest request) {
CloudAccountDTO cloudAccountDTO = cloudAccountService.createCloudAccount(userId, request);
return ResponseEntity
.created(URI.create("/api/v1/cloud-accounts/" + cloudAccountDTO.getCloudAccountId()))
.body(cloudAccountDTO);
}
..........
}
}
< /code>


.......

org.springframework.boot
spring-boot-starter-test
test


jakarta.persistence
jakarta.persistence-api



javax.xml.bind
jaxb-api
2.3.0


org.hibernate.javax.persistence
hibernate-jpa-2.1-api
1.0.0.Final



org.projectlombok
lombok
true


javax.validation
validation-api
2.0.1.Final


org.postgresql
postgresql



io.github.cdimascio
dotenv-java
3.1.0



org.springframework.boot
spring-boot-starter-web




< /code>
Error creating bean with name 'cloudAccountController' defined in file [C:\Users\nesri\OneDrive\Documents\PFE-M2C\Code\M2C_Backend\user-account-service\target\classes\com\m2c\chatbot\useraccount\controller\CloudAccountController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'cloudAccountServiceImpl' defined in file [C:\Users\nesri\OneDrive\Documents\PFE-M2C\Code\M2C_Backend\user-account-service\target\classes\com\m2c\chatbot\useraccount\service\impl\CloudAccountServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'cloudAccountRepository' defined in com.m2c.chatbot.useraccount.repositories.CloudAccountRepository defined in @EnableJpaRepositories declared on UseraccountApplication: Could not create query for public abstract java.util.List com.m2c.chatbot.useraccount.repositories.CloudAccountRepository.findByUserId(java.lang.Long); Reason: Failed to create query for method public abstract java.util.List com.m2c.chatbot.useraccount.repositories.CloudAccountRepository.findByUserId(java.lang.Long); No property 'id' found for type 'User'; Traversed path: CloudAccount.user
< /code>
I tried using these dependency instead but it didn't workout

< /code>
but i got Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unknown access type record

`2025-02-13T13:10:03.100+01:00 WARN 7772 --- [user-accounts-service] [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory'


Подробнее здесь: https://stackoverflow.com/questions/794 ... controller
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»