Pessoal, estou seguindo um tutorial sobre Hibernate annotation, mas chegou em uma parte que não entendi o que é para fazer, veja:
[i][b]Configurando[/b][/i]Nosso primeiro passo é configurar o hibernate, portanto iniciamos instanciando umaorg.hibernate.cfg.AnnotationConfiguration.// Cria uma configuração para a classe ProdutoAnnotationConfiguration cfg=new AnnotationConfiguration();A partir daí podemos adicionar quantas classes desejarmos a nossa configuração.// Adiciona a classe Produtocfg.addAnnotatedClass(Produto.class);No nosso caso iremos adicionar somente a nossa classe Produto, gerando o seguinteresultado para configurar o Hibernate:// Cria uma configuração para a classe ProdutoAnnotationConfiguration cfg=new AnnotationConfiguration();// Adiciona a classe Produtocfg.addAnnotatedClass(Produto.class);Só isso não é suficiente para que o Hibernate esteja configurado com a classe Produto.O Hibernate requer que descrevamos como a classe se relaciona com as tabelas no banco dedados e fizemos isso através das anotações do Hibernate.Essa configuração poderia ser feita através de um arquivo xml chamado hibernate.cfg.xml.
Como faço esta configuração, não ficou bem explicado pra mim !!! eu crio uma classe ??? um arquivo xml ?? algum método ???
Ficou meio obscuro pra mim, e já procurei no google e todos que encontrei estão neste estilo tb, nenhuma explicação aprofundada !!! Acho q estão considerando que saibamos algo já !!! mas eu to aprendendo agora.
marceloplis, a questão é a seguinte, antes, no hibernate, vc tinha que criar um arquivo .cfg.xml onde vc configura questões como base de dados, controle de transação, dialect, quais hbm.xml vc usaria, essas coisas.
Agora, com annotations, vc tb deve configurar esse arquivo, que é o hibernate.cfg.xml.
A diferença é que ao invés de usar os arquivos de configuração hbm.xml que vc antes fazia para cada classe sua, agora vc adiciona diretamente os .class das suas classes.
Isso pode ser feito em runtime como no exemplo, ou diretamente nesse arquivo de configuração.
Dá uma procurada por hibernate.cfg.xml que vc vai esclarecer suas dúvidas.
M
marceloplis
Sapulha, pelo que entendi nesta parte, é que o arquivo xml seria uma opçãp, mas que neste exemplo ele não é usado, pois a parte de conexão com o BD está no hibernate.properties.
O que eu não entendi, é onde colocar o seguinte código ?? em qual arquivo que coloco ??
// Cria uma configuração para a classe ProdutoAnnotationConfigurationcfg=newAnnotationConfiguration();// Adiciona a classe Produtocfg.addAnnotatedClass(Produto.class);
Valew.
M
marceloplis
Consegui me achar, era só ir mais adiante no tutorial que estava a resposta: :oops:
importorg.hibernate.cfg.AnnotationConfiguration;importorg.hibernate.tool.hbm2ddl.SchemaExport;publicclassGeraTabelas{publicstaticvoidmain(String[]args){//Cria uma configuração para a classe produtoAnnotationConfigurationcfg=newAnnotationConfiguration();cfg.addAnnotatedClass(Produto.class);newSchemaExport(cfg).create(true,true);}}
Agora estou com outro problema, ao fazer esta classe fala que é só executá-la que a tabela seria criada !!! mas não está gerando e nem dando erro !! O que pode ser ???
Valew
Guerr
Esta configuração para a geração das tabelas constuma ficar no hibernate.cfg.xml… É uma propriedade que você coloca lá que habilita a criação das tabelas.
M
marceloplis
Então, mas acho que o propósito é justamente abandonar o xml, pois a declaração da criação de tabelas e dados está em ANNOTATION.
Para testes, criei a tabela na mão mesmo e está dando o seguinte erro: