HibernateFactory dúvida

3 respostas
tati.mat.moreira

Oie,

estou com uma dúvida sobre Hibernate annotations. Estou seguindo a apostila da FJ-21 e estou adorando, parabéns aos criadores! :) Na apostila, eles fazem um projeto com somente uma entidade: Produto. A classe HibernateFactory correspondente é a seguinte:
public class HibernateFactory {
	private static SessionFactory factory; 
	
	static {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Produto.class);
				
		factory = cfg.buildSessionFactory();
	}
	
	public Session getSession(){
		return factory.openSession(); 
	}
}
E a classe pra gerar as tabelas é a seguinte:
public class GerarTabelas {
		public static void main(String[] args) {

			AnnotationConfiguration cfg = new AnnotationConfiguration();
			cfg.addAnnotatedClass(Produto.class);
						
			new SchemaExport(cfg).create(true, true);
		}
}

A dúvida é a seguinte: Como ficará as classes HibernateFactory e GerarTabelas, sendo que eu tenho não só uma, mas 5 classes no meu sistema: Produto, Usuario, Setor, Fornecedor e Diretor?

Bjos!

3 Respostas

von.juliano
Você só precisa ir adicionando as classes anotadas, independente de quantas tiver:
public class HibernateFactory {
	private static SessionFactory factory;

	static {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Produto.class);
		cfg.addAnnotatedClass(Usuario.class);
		cfg.addAnnotatedClass(Setor.class);
		cfg.addAnnotatedClass(Fornecedor .class);
		cfg.addAnnotatedClass(Diretor.class);

		factory = cfg.buildSessionFactory();
	}

	public Session getSession() {
		return factory.openSession();
	}
}
Blz? Flw! :mrgreen:
tati.mat.moreira

Oie,

entendi! E a classe GerarTabelas, eu tb coloco todas entidades?
public class GerarTabelas {
		public static void main(String[] args) {

			AnnotationConfiguration cfg = new AnnotationConfiguration();
			cfg.addAnnotatedClass(Produto.class);  
                        cfg.addAnnotatedClass(Usuario.class);  
                        cfg.addAnnotatedClass(Setor.class);  
                        cfg.addAnnotatedClass(Fornecedor .class);  
                        cfg.addAnnotatedClass(Diretor.class);  
						
			new SchemaExport(cfg).create(true, true);
		}
}
Até...
von.juliano

Sim, se você deixar de colocar alguma, a respectiva tabela não é gerada.

Flw! :mrgreen:

Criado 4 de setembro de 2008
Ultima resposta 4 de set. de 2008
Respostas 3
Participantes 2