Olá, Pesquisando encontrei o arquivo application.properties. Ok, mas ao tentar subir minha aplicação o hibernate não criou as tabelas no banco, somente após eu usar a annotation @EntityScan, porque isso aconteceu?
Olá, Pesquisando encontrei o arquivo application.properties. Ok, mas ao tentar subir minha aplicação o hibernate não criou as tabelas no banco, somente após eu usar a annotation @EntityScan, porque isso aconteceu?
Oi Diego,
No seu application.properties, tente colocar:
spring.jpa.hibernate.ddl-auto=create
Abraço!
Ok, fiz o que disse porém ele dá o seguinte erro: Unknown database 'livraria' se ela não estiver criada no banco, outra coisa, as tabelas não foram geradas mesmo depois de ter criado a database. Existe uma forma do hibernate criar a database e as tabelas se não houverem no banco?
Nesta abordagem consigo criar as tabelas quando subo a aplicação e mantenho o parâmetro como update para as ddl. Classe ApiLivraria(main)
@SpringBootApplication
@EntityScan(basePackages = {"com.myproject.models"})
public class ApiLivraria {
public static void main(String[] args){
SpringApplication.run(ApiLivraria.class, args);
}
}
resources/application.properties
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql = true
spring.jpa.generate-ddl = true
spring.jpa.hibernate.ddl-auto = update
Quando uso o create não gera as tabelas, pode me dizer porque isso está ocorrendo e qual a boa prática para configuração do JPA?
Outra coisa, quando faço:
spring.jpa.hibernate.ddl-auto=create
Aparece o erro: Hibernate: alter table carrinho drop foreign key
Quando eu faço:
spring.jpa.hibernate.ddl-auto=update
Ele primeiro cria as tabelas depois faz um alter table gerando as constraints:
Hibernate: alter table carrinho add constraint FK59l0wyxchwpr1h1f8autio39p foreign key (livro_id) references livro (id)
O que está acontecendo?
Consegui criar todo os modelos corretamente, está estável e criado no banco, segue o projeto se tiver curiosidade: https://github.com/DiegoProtec/myproject