Pesquisar

quarta-feira, 30 de abril de 2008

JPA em ambiente de produção (I)

Algo interessante a se notar é que algumas configurações podem ajudar a reduzir o impacto do uso de um framework ORM/persistência...
Por exemplo, "algumas" implementações do JPA oferecem a possibilidade de que o próprio framework crie, atualize e delete o esquema de tabelas, todavia esse tipo de recurso pode ser não desejável em ambientes de produção.

Veja o exemplo da implementação hibernate:
propriedade hibernate.hbm2ddl.auto
"Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly."

Ou seja, toda primeira vez que criarmos uma "session factory" [no caso EntityManagerFactory do JPA] o framwork vai tentar criar, validar ou etc. mesmo que o banco com as tabelas já existam. Pra quem dúvida basta observar o console, irá notar que o jpa tentar criar com ddl todo o esquema.

Outro caso é a implementação toplink:
propriedade toplink.ddl-generation ...

Enfim é interessante desligar essas opções em produção, aproveitar para deixar livre para outras coisas como logger...

2 comentários:

GreenMan disse...

Thanks Leandro, I'd never observe this.
Great post.

Anônimo disse...

ler todo o blog, muito bom