1
resposta

Problema com o JDBC (Java/Springboot)

Oi pessoal, tudo bem? Estou fazendo um projetinho para treinar algumas coisas que aprendi e estou recebendo um erro na hora de salvar no banco de dados.

JDBC exception executing SQL [select u1_0.user_id,u1_0.full_name,u1_0.user_password,u1_0.user_name from tb_users u1_0 where u1_0.user_id=?] [Table 'easysocial.tb_users' doesn't exist] [n/a]

@Entity
@Table(name = "tb_users")
@Data
public class User implements UserDetails {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "user_id", unique = true)
    private UUID id;

    @Column(name = "full_name")
    private String fullName;

    @Column(name = "user_name", unique = true)
    private String userName;

    @Column(name = "user_password")
    private String password;

    @OneToMany(fetch = FetchType.LAZY)
    @JoinColumn(referencedColumnName = "user_id")
    private List<CellPhone> cellPhones;

    public User(String fullName, String userName, String password, List<CellPhone> cellPhones) {
        this.fullName = fullName;
        this.userName = userName;
        this.password = password;
        this.cellPhones = cellPhones;
    }

    public void update(String fullName, String userName, String password, List<CellPhone> cellPhones){
        if(!fullName.isBlank()){
            this.fullName = fullName;
        }

        if(!userName.isBlank() || userName.length() < 4){
            this.userName = userName;
        }

        if(!password.isBlank() || password.length() < 4){
            this.password = password;

        }

        this.cellPhones = cellPhones;
    }

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return List.of(new SimpleGrantedAuthority("ROLE_USER"));
    }

    public String getPassword() {
        return password;
    }

    @Override
    public String getUsername() {
        return this.userName;
    }

    @Override
    public boolean isAccountNonExpired() {
        return true;
    }

    @Override
    public boolean isAccountNonLocked() {
        return true;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }

    @Override
    public boolean isEnabled() {
        return true;
    }
}
@Entity
@Table(name = "tb_cellphone")
@Data
public class CellPhone {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "phone_id", unique = true)
    private UUID id;

    @Column(name = "cell_phone")
    private String cellphone;

    @Column(name = "user_id")
    private UUID userId;
}

Alguém pode me dar uma luz?

1 resposta

Oi Igor, tudo bem?

Pelo erro que você recebeu, parece que a tabela "tb_users" não existe no banco de dados. Isso pode acontecer se você não tiver criado a tabela corretamente ou se o nome da tabela estiver incorreto.

Verifique se você executou as migrações ou scripts necessários para criar a tabela "tb_users" no seu banco de dados. Além disso, verifique se o nome da tabela está escrito corretamente no código.

Outra possibilidade é que você esteja tentando salvar um registro na tabela "tb_users" antes de criar a tabela "tb_cellphone". Certifique-se de que a tabela "tb_cellphone" também foi criada corretamente no banco de dados.

Se você estiver usando o Spring Data JPA, certifique-se de que a configuração do banco de dados está correta no arquivo "application.properties" ou "application.yml".

Espero que essas sugestões possam te ajudar a resolver o problema. Se tiver mais alguma dúvida, é só me dizer!

Espero ter ajudado e bons estudos!