Pessoal, queria saber como se faz uma validação estrutural das tabelas existentes no banco no momento que a aplicação for iniciada.
Alguém conseguiria me ajudar ou me passar algum conteúdo sobre?
Como solução fiz isso:
package com.pedroteixeira.projetomobicare;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.pedroteixeira.projetomobicare.models.Colaborador;
import com.pedroteixeira.projetomobicare.models.Setor;
import com.pedroteixeira.projetomobicare.repository.ColaboradorRepository;
import com.pedroteixeira.projetomobicare.repository.SetorRepository;
@SpringBootApplication
public class ProjetoMobicare1Application implements CommandLineRunner {
@Autowired
private ColaboradorRepository Colrepository;
@Autowired
private SetorRepository Setrepository;
public static void main(String[] args) {
SpringApplication.run(ProjetoMobicare1Application.class, args);
}
@Override
public void run(String... args) throws Exception {
if(Colrepository.count() == 0) {
Colrepository.save(new Colaborador("Teste","Teste","Teste","Teste","Teste","Teste"));
}
if(Setrepository.count() == 0) {
Setrepository.save(new Setor("Teste","Teste"));
}
System.out.println("Colaboradores found with findAll():");
System.out.println("-------------------------------");
for (Colaborador colaborador : Colrepository.findAll()) {
System.out.println(colaborador);
}
System.out.println();
System.out.println("Setores found with findAll():");
System.out.println("-------------------------------");
for (Setor setor : Setrepository.findAll()) {
System.out.println(setor);
}
Colrepository.delete(Colrepository.findOne("Teste"));
Setrepository.delete(Setrepository.findOne("Teste"));
}
}
E coloquei em aplication proprieties:
spring.data.mongodb.database=projeto_mobicare
Com isso ele valida se o banco e as coleções estão criadas ou não. Caso não estejam retornam ele cria automaticamente. Se alguém tiver resposta melhor posta aí, é sempre bom saber o melhor método de se fazer algo.