[RESOLVIDO] Hibernate 4.1.10: mapeamento somente por anotações?
8 respostas
A
Alexsandro_Lopes
Pessoal, criei uma aplicação via console para aprendizado do Hibernate versão 4.1.10
tive problemas iniciais por causa da maioria dos tutoriais serem de versões anteriores e na versão 4.0 algumas classes e métodos estão depreciados.
Quiz iniciar com o mapeamento com hbm.xml só que ao executar estava recebendo uma exceção de “Entidade Desconhecida” depois de fazer várias alterações nos arquivos de configuração e classes sem sucesso, partir para mapear a classe entidade por anotação e a aplicação foi executada com sucesso.
Fiquei com uma dúvida:Será que a partir da versão 4.0 o Hibernate só faz mapeamento por anotações?
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="br.com.hibernate.modelo.produto.Produto"table="produto"><idname="codigo"><generatorclass="native"></generator></id><propertyname="nome"></property><propertyname="preco"></property></class></hibernate-mapping>
Algum erro?
J
javaflex
Os arquivos de mapeamento (HBM).
No config:
Ou programaticamente:
SessionFactory sessionFactory = new Configuration()
.addResource("xxx/xxx/Produto.hbm.xml")
.buildSessionFactory();
No Hibernate do .NET tem uma forma que pega todos os mapeamentos de um “assembly” definido, no Java nunca usei algo similar para pacote, mas dá uma pesquisada.
A
Alexsandro_Lopes
Valeu javaflex, era isso mesmo! nas vídeo aulas que estava assistindo e em outros tutoriais não tinha este atributo “resource”! é bom porque abre a mente e entende melhor o assunto:
A classe HibernateUtil pega as configurações do hibernate.cfg.xml e cria uma Session, que é solicitada pelo DAO, enquanto hibernate.cfg.xml pega os mapeamentos das Entidades através do hbm.xml
A
adriano.braga83
Usando mapeamento hbm.xml ???
Não acha seria melhor fazer as anotações na classe?
J
javaflex
adriano.braga83:
Usando mapeamento hbm.xml ???
Não acha seria melhor fazer as anotações na classe?
Já parou para pensar que isso é gambiarra? É fato que é muito adotado pela comunidade e é mais produtivo, mas é gambiarra e confuso de “enxergar” as coisas depois de muito tempo. Por XML é chato? Demais, mas não tem outra forma além dessa sem esculhambar as entidades. NHibernate (.NET) e Mentabean (Java) a coisa é limpa por exemplo, mapeamento programático separado da entidade. Infelizmente Hibernate para Java ainda não tem isso, e eu não entendo como o melhor ORM do mercado para a maior plataforma de desenvolvimento ainda não tem isso. Era só “copiar/adaptar” do NHibernate, da mesma forma que o NHibernate foi todo “copiado/adaptado”.
S
saymonpires
Alexsandro Lopes:
Pessoal, criei uma aplicação via console para aprendizado do Hibernate versão 4.1.10
tive problemas iniciais por causa da maioria dos tutoriais serem de versões anteriores e na versão 4.0 algumas classes e métodos estão depreciados.
Quiz iniciar com o mapeamento com hbm.xml só que ao executar estava recebendo uma exceção de “Entidade Desconhecida” depois de fazer várias alterações nos arquivos de configuração e classes sem sucesso, partir para mapear a classe entidade por anotação e a aplicação foi executada com sucesso.
Fiquei com uma dúvida:Será que a partir da versão 4.0 o Hibernate só faz mapeamento por anotações?
Gostaria de saber como voce fez isto, estou iniciando em hibernate, e não imagino como voce faria isto caso possa demonstra ficaria agradecido