Estudar Hibernate - Como e o que estudar?

16 respostas Resolvido
hibernatejava
S

Salve, salve, galera de cowboy! :man_farmer:

Sou novo em programação/java/sei la o que…
Vejo muita gente falar de hibernate pra cá, hibernate pra lá…

Primeiramente, queria saber em palavras mais simplificadas oq seria, pois pesquisando, encontro falando q eh um framework facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante o uso de arquivos (XML) ou anotações Java. Mas queria saber como vocês definem isso numa linguagem mais “popular”, vamos dizer assim. Queria uma ajuda sobre o que e como estudar sobre isso. Acho que seria muito interessante e oportuno acrescentar isso aos meus conhecimentos.

Quem puder dar uma força, ficarei grato! :hugs:

Amo todos vocês, seus lindos! :heart:

16 Respostas

D
Solucao aceita

Bom, eu diria que o pré requisito fundamental é conhecer muito bem de SQL e ter uma boa base com orientação a objetos. Afinal, hibernate e ORMs em geral atuam no meio desses dois elementos.
Ah, sim, eu nem perderia tempo com hibernate puro. Iria direto para JPA.

O que estudar?

  • Configuração - persistence.xml e tudo o que envolve esse cara
  • Mapeamentos - anotações
  • Mapeamento de relacionamentos e chaves primárias
  • Cache de primeiro e segundo níveis
  • JPQL - JPA Query Language
J

Bom você disse que é novo em programação.Aprenda primeiro um pouco da base do java, e também java oritentado a obketos depois aprenda um pouco de sql e da jdbc depois eu te aconselho a aprender hibernate e jpa.Para assim você poder aprender e entender melhor como funciona .não de um pulo muito grande pois você não sabe o tamanho da queda

E

Hibernate é um framework para o Mapeamento Objeto-Relacional(ORM), implementa a especificação JPA(Java Persistence API).
Para aprender Hibernate é necessário como pre requisitos domínio em orientação a objetos e SQL, além de um bom conhecimento da linguagem Java. Aconcelho antes estudar sobre JPA e enterder bem sobre essa especificação.
Segue o link da oracle sobre JPA
https://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html
https://jcp.org/aboutJava/communityprocess/mrel/jsr338/index.html

Artigos sobre JPA
https://www.devmedia.com.br/introducao-a-jpa-java-persistence-api/28173


https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/

S

Isso eu já tenho, creio eu. Desde o principio, comecei com a POO, SQL e JDBC. Então acho que já eh um bom momento para conhecer um pouco sobre isso.

Obrigado pelos links e seja bem-vindo ao clã do GUJ kk :heart:
Caso não tenha lido, por favor leia este tópico que irá te ajudar muito aqui no fórum:

S

Dando uma pesquisada nestes links, me veio uma dúvida :thinking:
Eu consigo fazer a persistencia de dados usando APENAS anotações, ou necessariamente preciso de um arquivo xml?

D

Anotações e:

  • xml
  • arquivo .properties
  • configuração programática
S

E usando isso tudo, eu conseguiria fazer a persistencia, sem ter classe DAO? :thinking:
Ou o Hibernate só faz a inserção, mas o SELECT´s serão ainda por uma classe DAO? :thinking:

D

DAO é uma abstração, um pattern que objetiva tornar transparente o processo de persistência.
Você pode, sim, remover essa parte do teu código. Pode, por exemplo, tornar as tuas entidades funcionais, tirando o aspecto anêmico de apenas fazer get e set, passando a agir como entidades que realmente executam ações.

S

Em outras palavras, eu consigo pela própria classe modelo, além de apenas setar as variáveis (pelos setters), já persistir no BD diretamente, sem ter que tramitá-las em outra classe. Certo?

D

Você deve conhecer o conceito de entidade anêmica, não? É o famoso POJO java:

  • Classe pública, atributos privados e métodos getters e setters
  • Construtor padrão

Assim sendo, você pode incluir os métodos do CRUD nessa entidade (ou numa superclasse e especializar, enfim). Embora eu tenha minhas ressalvas com esse modelo, vc pode fazer assim.

F

Você também pode fazer tudo por repositórios. Eu prefiro.

D

@FearX, como fazer para que, usando repositórios, não façamos deles DAOs disfarçados?

F

Nunca parei para pensar nisso! Acho que, no final das contas, está disfarçado mesmo. Ótimo questionamento…

Mas parando pra pensar agora, o DAO se aloca na infraestrutura enquanto o repository é regra de negócio. Repository, portanto, não pode ter conhecimento de infra, por assim dizer.

Dá pra usar lado a lado os conceitos. Então o Repository não toma papel de DAO, mas sim se comunica com ele.

Recomendo essa comparação entre DAO e Repository.

D

Justo!
Eu tenho visto cada vez mais repositories sendo DAOs… E isso me preocupa.

L

No youtube tem um canal chamado descompilando, lá tem uma série que ensina o hibernate do absoluto 0 e vai até na manipulação utilizando 2 tabelas de um para muitos, muito boa a didática, recomendo.

S

@lemes depois vou dar uma olhada nessa playlist; já salvei ela para assistir, obrigado:hugs:

To lendo um material da oracle que me foi sugerido nesse post pelo evertoncg10, e so de ver já percebo que é muito mais prático usar Hibernate do q aqle monte de classes DAO.

Conheço sim sobre classe POJO.

Isso que achei interessante, dando uma estudada no Hibernate. Aproveita-se muito mais da classe usando HIbernate.

O hibernate deixa o código bem mais simples.
Obrigado a todos que tiraram um tempinho para me ajudar nisso! Certamente foi de grande ajuda!

Criado 10 de julho de 2019
Ultima resposta 12 de jul. de 2019
Respostas 16
Participantes 6