Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Erro no @Query do JPA

Estou fazendo o curso de spring boot e me deparei com um erro, criei um projeto a parte para ver se conseguia resolver, mas deu o mesmo erro. Alguém me ajuda.

Erro:

2023-08-07T09:29:30.235-03:00 WARN 26773 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'testeController': Unsatisfied dependency expressed through field 'repository': Error creating bean with name 'usuarioRepository' defined in med.voll.api.repository.UsuarioRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract java.lang.Boolean med.voll.api.repository.UsuarioRepository.buscarPorSenha(java.lang.String); Reason: Validation failed for query for method public abstract java.lang.Boolean med.voll.api.repository.UsuarioRepository.buscarPorSenha(java.lang.String) 2023-08-07T09:29:30.236-03:00 INFO 26773 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'

Tabela Mysql:

CREATE TABLE usuarios( id BIGINT PRIMARY KEY AUTO_INCREMENT, login_us VARCHAR(80), senha VARCHAR(80) )

Entidade:

@Table(name = "usuarios") @Entity(name = "usuarios") @Getter @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(of = "id") public class Usuario { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String loginUs; private String senha;

public Usuario(UsuarioDTO dados) {
    this.loginUs = dados.login();
    this.senha = dados.senha();
}

}

Código que não compila (UsuarioRepository)

public interface UsuarioRepository extends JpaRepository<Usuario, Long> { Boolean findBySenha(String senha); @Query("select * from Usuario u where u.senha = :senha") Boolean buscarPorSenha(String senha); }

2 respostas
solução!

Olá, você pode postar os outros arquivos? Controller service etc?

Eu consegui resolver, era porque eu estava marcando o Entity errado, e o query faz pesquisas baseado no objeto. No caso era pra ser @Entity(name="Usuario") ou só @Entity

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software