A aula que acompanho, não sei se o fórum é somente de uma turma, logo no início cria a classe Cargo e o repository CargoRepository, para apresentar a diferença entre o Spring e a JPA pura. Nesse momento, ao rodar o arquivo SpringDataApplication.java deveria inserir o objeto Cargo criado no banco dedados, entretanto recebo erro como se a entidade cargo não estivesse mapeada. Antes de postar aqui já procurei soluções tanto no fórum quanto em outros ambientes fora da alura, e não consegui identificar o meu problema. Não estou utilizando o mariaDB, conforme o curso, pois não consegui conectar e, para prosseguir, decidi usar o mysql que já havia usado em um curso anterior. Seguem os códigos:
Cargo
package br.com.alura.spring.data.orm;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "cargos")
public class Cargo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String descricao;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
CargoRepository.java
package br.com.alura.spring.data.repository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import br.com.alura.spring.data.orm.Cargo;
@Repository
public interface CargoRepository extends CrudRepository<Cargo, Integer> {
}
SpringDataApplication.java
package br.com.alura.spring.data;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import br.com.alura.spring.data.orm.Cargo;
import br.com.alura.spring.data.repository.CargoRepository;
@SpringBootApplication
public class SpringDataApplication implements CommandLineRunner {
private final CargoRepository repository;
public SpringDataApplication(CargoRepository repository) {
this.repository = repository;
}
public static void main(String[] args) {
SpringApplication.run(SpringDataApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Cargo cargo = new Cargo();
cargo.setDescricao("Desenvolvedor de Software");
repository.save(cargo);
}
}
application.properties
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/alura
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImproveNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect