Boa tarde a todos,

Em alguns momentos durante o desenvolvimento de sistemas, precisamos ter o total controle dos dados inseridos em nosso sistema para que possamos por exemplo realizar teste.
Neste post irei demonstrar um recurso disponível a partir da versão 2.1 do JPA que permite que o sistema ao ser iniciado, limpe todas as tabelas do banco e execute um script sql.
O grande segredo está na execução deste script, pois a partir dele teremos o controle dos dados persistidos na base.

Primeiro passo: A linha no arquivo persistence.xml que indica ao Hibernate que deve limpar a base de dados ao iniciar o sistema é:
<property name=”hibernate.hbm2ddl.auto” value=”create”/>

Segundo passo: A linha no arquivo persistence.xml que indica o script que deverá ser executado após a criação do banco e iniciação do sistema é :
<property name=”hibernate.hbm2ddl.import_files” value=”/META-INF/sql/carregar-dados.sql” />

Obs.: O valor “/META-INF/sql/carregar-dados.sql” representa o caminho onde o script está presente.

Considerações importantes:
1. A pasta META-INF é a que fica dentro da estrutura da App.
Exemplo se for no padrão maven: /src/main/webapp/META-INF/..

2. O arquivo SQL somente será executado se o schema informado em [hibernate.hbm2ddl.auto ] for [create or create-drop]

Exemplo de script:
insert into pessoa(codigo, nome) values(1, “Anderson Silva);

Boa implementação a todos.