Olá a todos, sou iniciante neste fórum e segundo uma sugestão que me foi dada, criei este tópico para saber quais são os impactos na migração de um projeto do paradigma Entidade Relacionamento (E-R) para o paradigma Orientado por Objeto (O.O) utilizando o Hibernate como framework de persistência.
Esta dúvida surgiu pois estou com um projeto que foi Elaborado (definição do modelo de dados) todo em um banco de dados E.R. (MySQL) e agora, antes de iniciar o desenvolvimento, optou-se pelo desenvolvimento em Java (JSP + Servlets) daí veio a utilização de Struts como framework que resolveu as questões “C” e “V” do modelo MVC, mas o “M” ainda não estava claro como seria incorporado com Struts daí a idéia de utilizar o Hibernate, que até onde sei é tipicamente O.O.
Espero ter sido minimamente claro para ser entendido.
Primeiro, a sua aplicação pode ser completametne OO e utilizar um banco de dados relacional comum para persistir as informações, segundo, usar Hibernate não quer dizer de forma alguma que a sua aplicação foi feita utilizando os preceitos da orientação a objetos.
O impacto do uso do Hibernate em um banco relacional corretamente normalizado é zero, se o modelo estiver correto e com os relacionamentos bem definidos, você não vai ter problema nenhum em utilizá-lo.
J
jwcunha
Maurício Linhares:
Primeiro, a sua aplicação pode ser completametne OO e utilizar um banco de dados relacional comum para persistir as informações, segundo, usar Hibernate não quer dizer de forma alguma que a sua aplicação foi feita utilizando os preceitos da orientação a objetos.
O impacto do uso do Hibernate em um banco relacional corretamente normalizado é zero, se o modelo estiver correto e com os relacionamentos bem definidos, você não vai ter problema nenhum em utilizá-lo.
Obrigado Maurício, fico mais seguro quanto a isto então.
Já optando pelo Hibernate, estou lendo o seu artigo “Introdução ao Hibernate” mas não sei onde colocar os arquivos hbm.xml. Estou usando o Netbeans 5.5 e ao fazer a abstração do banco de dados ele mesmo criou os arquivo .java com os respectivos getters e setters, creio que são chamados de Pojos, ok? Agora para fazer o mapeamento com as minhas entidades via XML onde vou colocar estes arquivos?
A estrutura de diretórios que estou utilizando é?
context.xml
structs-config.xml
tiles-defs.xml
validation.xml
validator-rules.xml
web.xml
form.jsp
....
index.jsp
.schema <-------------- nó criado pelo netbeans
......
MANIFEST.XML
context.xml
persistence.xml
strtucts-config.xml
tiles-defs.xml
validation.xml
validator-rules.xml
web.xml
Server Resources
Source Packages
com.myapp.db.struts
com.myapp.struts
ApplicationResources.properties
Servlet.java
+Test Package
+Libraries
+Test Libraries
Desde já agradeço mais uma vez.
kissdemon
Colega,
ao invés da utilização dos arquivos XML, por que nao usar Annotations para fazer o mapeamento das entidades? São infinitamente mais faceis e legíveis (sim, XML é um porre), alem de possuir todas as caracteristicas das entidades em código Java.
Boa sorte aí na sua migração
[]'s
J
jwcunha
kissdemon:
Colega,
ao invés da utilização dos arquivos XML, por que nao usar Annotations para fazer o mapeamento das entidades? São infinitamente mais faceis e legíveis (sim, XML é um porre), alem de possuir todas as caracteristicas das entidades em código Java.
Boa sorte aí na sua migração
[]'s
Caro colega, vc está me dizendo que eu posso me livrar dos XML para mapeamento??? Alguma referência (tutorial, site, etc) para estudar como fazê-lo?
Obrigado.
luis.soares
Você pode acessar o site da http://www.caelum.com.br Caelum e baixar a apostila do curso FJ-21, que trata em um dos seus capítulos sobre Hibernate com Annotations.
No Google e aqui no GUJ, faça uma busca por “Hibernate Annotations”. O conceito é simples.
Abraço !
kissdemon
jwcunha:
Caro colega, vc está me dizendo que eu posso me livrar dos XML para mapeamento??? Alguma referência (tutorial, site, etc) para estudar como fazê-lo?
Obrigado.
Exato. E como o Luis mesmo já citou, a Caelum disponibiliza otimas apostilas em seu site, alem de encontrar facilmente materiais pela net e aqui mesmo no GUJ.
De uma olhada aqui tb:
[]'s
J
jwcunha
luis.soares:
Você pode acessar o site da http://www.caelum.com.br Caelum e baixar a apostila do curso FJ-21, que trata em um dos seus capítulos sobre Hibernate com Annotations.
No Google e aqui no GUJ, faça uma busca por “Hibernate Annotations”. O conceito é simples.
Abraço !
Luis, é o seguinte, estou utilizando o material da Caelum, mas o seguinte erro esta sendo gerado. Os dois warnings são previstos no material mas está sendo lançada uma exceção como se eu não tivesse configurado o hibernate.propertie, sei que é pelo fato do dialeto, mas já configurei o arquivo, estou usando o netbeans e coloquei no diretório src.
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
A quem possa ajudar,
att
J
jwcunha
Pessoal, tô debugando o erro e é o seguinte:
Non-existing path “C:\projeto\build\ear-module\WEB-INF\classes” provided.
Exception in thread “main” java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
at java.lang.ClassLoader.defineClass1(Native Method)
A linhda é esta:
AnnotationConfiguration cfg = new AnnotationConfiguration();
o que pode estar faltando?
luis.soares
Você precisa adicionar os .jar do hibernate no classpath do seu projeto.
Deve existir o arquivo hiernate.cfg.xml no diretório src raiz. E o arquivo de properties também.
Verifique isso, e qualquer coisa post aqui.
Abraço.
J
jwcunha
luis.soares:
Você precisa adicionar os .jar do hibernate no classpath do seu projeto.
Deve existir o arquivo hiernate.cfg.xml no diretório src raiz. E o arquivo de properties também.
Verifique isso, e qualquer coisa post aqui.
Abraço.
Luis, tem alguma coisa muito estranha acontecendo :(, estou usando o netbeans, adicionei os jars do hibernate e o hibernate.cfg.xml e também o hibernate.properties no src (naquele material da caelum não fala nada do cfg.xml, mas tudo bem) mas mesmo assim o erro continua, como se o projeto não estivesse encontrando estes arquivos.
É isso!
[]'s, JWCunha
kissdemon
Copie-os diretamente para o classes. Tive o mesmo problema utilizando o src e no meu caso, o Eclipse nao atualizava o classes. Resolvi alterando diretamente no classes.
[]'s
J
jwcunha
kissdemon:
Copie-os diretamente para o classes. Tive o mesmo problema utilizando o src e no meu caso, o Eclipse nao atualizava o classes. Resolvi alterando diretamente no classes.
[]'s
O netbeans não cria o diretórios classes vc saberia me dizer qual é diretório correspondente?
Já estou suando frio!!!
rs…
J
jwcunha
Maurício Linhares:
Primeiro, a sua aplicação pode ser completametne OO e utilizar um banco de dados relacional comum para persistir as informações, segundo, usar Hibernate não quer dizer de forma alguma que a sua aplicação foi feita utilizando os preceitos da orientação a objetos.
O impacto do uso do Hibernate em um banco relacional corretamente normalizado é zero, se o modelo estiver correto e com os relacionamentos bem definidos, você não vai ter problema nenhum em utilizá-lo.
Maurício, estou tendo o seguinte erro:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)