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.
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
Jhonatas_Tomaz1 like
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
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
Caso não tenha lido, por favor leia este tópico que irá te ajudar muito aqui no fórum:
S
smatt
Dando uma pesquisada nestes links, me veio uma dúvida
Eu consigo fazer a persistencia de dados usando APENAS anotações, ou necessariamente preciso de um arquivo xml?
D
darlan_machado1 like
Anotações e:
xml
arquivo .properties
configuração programática
S
smatt
E usando isso tudo, eu conseguiria fazer a persistencia, sem ter classe DAO?
Ou o Hibernate só faz a inserção, mas o SELECT´s serão ainda por uma classe DAO?
D
darlan_machado
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
smatt
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
darlan_machado1 like
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
FearX1 like
Você também pode fazer tudo por repositórios. Eu prefiro.
D
darlan_machado1 like
@FearX, como fazer para que, usando repositórios, não façamos deles DAOs disfarçados?
F
FearX1 like
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.
Justo!
Eu tenho visto cada vez mais repositories sendo DAOs… E isso me preocupa.
L
lemes2 likes
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
smatt1 like
@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!