Gerar tabelas com JPA

6 respostas
J

É possível criar as tabelas a partir das anotações com JPA.

Antes era assim com hibernate

Configuration configuration = new AnnotationConfiguration();   
configuration.configure();   
  
SchemaExport se = new SchemaExport(configuration);   
se.create(true, true);

E agora com JPA como eu faço para gerar os scripts das tabelas?

Agradeço quem puder ajudar!

Jukinha

6 Respostas

acdesouza

Você está usando o Hibernate como provedor de persistência?

Caso esteja, coloca o elemento, abaixo, no persistence.xml:

J

Isso mesmo, eu utilizo o Hibernate como provider.

Essa instrução vai gerar um arquivo com os comandos SQL? se sim onde?
Ou ele manda os comandos direto para banco de dados

você poderia postar um exemplo.

Agradeço antecipadamente pela ajuda.

Jukinha

nbluis

ele cria no banco de dados tudo o que nao existir…

thiagocg

voce pode usar o codigo abaixo:

public class GerarBanco {
	public static void main(String arg[]){
		//cria uma configuracao
		AnnotationConfiguration cfg = new AnnotationConfiguration();
						
		//hibernate.cfg.xml 
		cfg.configure();
		
		//Responsável pela criação do schema e execução
		SchemaExport export = new SchemaExport(cfg);
		
		//export.create(imprimir o sql, se deve executar)
		//drop e cria novamente a tabela
		export.create(true, true);
	}
}

só precisa mapear corretamente as classes no seu hibernate.cfg.xml ou no seu persitence.xml

cleverson.sacramento

Se você preferir usar o persistence.xml ao invés do hibernate.cfg.xml, você pode fazer assim:

Ejb3Configuration cfg = new Ejb3Configuration();

// OBS: default eh o nome de meu persistence-unit no persistence.xml.
// O configure vai procurar o persistence.xml dentro da pasta META-INF que tem que estar no classpath
cfg.configure("default", null);
Configuration hbmcfg = cfg.getHibernateConfiguration();
		
SchemaExport schemaExport = new SchemaExport(hbmcfg);
schemaExport.create(true, true);
cleverson.sacramento
thiagocg:
voce pode usar o codigo abaixo:
public class GerarBanco {
	public static void main(String arg[]){
		//cria uma configuracao
		AnnotationConfiguration cfg = new AnnotationConfiguration();
						
		//hibernate.cfg.xml 
		cfg.configure();
		
		//Responsável pela criação do schema e execução
		SchemaExport export = new SchemaExport(cfg);
		
		//export.create(imprimir o sql, se deve executar)
		//drop e cria novamente a tabela
		export.create(true, true);
	}
}

só precisa mapear corretamente as classes no seu hibernate.cfg.xml ou no seu persitence.xml

Tentei assim com o persistence.xml, mas não funcionou. Desta forma só funcionou com o hibernate.cfg.xml. Eu postei em uma mensagem anterior como fazer para usar o persistence.xml.

Criado 27 de setembro de 2007
Ultima resposta 3 de out. de 2008
Respostas 6
Participantes 5