Qual a configuração necessária para o Spring Boot gerar as tabelas mapeadas pelo JPA automaticamente?
Qual a configuração necessária para o Spring Boot gerar as tabelas mapeadas pelo JPA automaticamente?
Oi Franklin.
O Spring boot não trabalha com JPA nativamente, ele precisa de um starter, que no caso é o spring-boot-starter-data-jpa
.
Com esse starter, a gente tem acesso as configurações da JPA, então vc pode colocar qualquer DDL para gerar suas tabelas.
O padrão default é ele já criar as tabelas que vc mapear com @Entity.
Se vc tiver duvidas sobre as DDL, recomendo vc ver o curso de JPA/Hibernate pois não é uma duvida do Spring Boot em si, e sim do framework de persistencia.
Aqui tem mais detalhes de como usar as DDL com Spring boot e o starter que eu comentei(que a gente viu no curso, tbm):
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
Posso deixar o banco em update mesmo em produção? se eu gerar um jar não tenho como alterar o application.properties... teria q gerar dois jars? um com create e outro com update? obrigado
Você pode usar os profiles do maven
<profiles>
<profile>
<id>prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<db.connection.url></db.connection.url>
<db.connection.username></db.connection.username>
<db.connection.password></db.connection.password>
</properties>
</profile>
<profile>
<id>hml</id>
<properties>
<db.connection.url></db.connection.url>
<db.connection.username></db.connection.username>
<db.connection.password></db.connection.password>
</properties>
</profile>
</profiles>
E no seu arquivo de propriedades, utilizar dessa forma:
spring.datasource.tomcat.url=${db.connection.url}
spring.datasource.tomcat.username=${db.connection.username}
spring.datasource.tomcat.password=${db.connection.password}