Novo Post: Alternativas ao JPA Hibernate. O que usar quando o JPA não atende meu projeto?

11 respostas
H

Neste post você verá alguns problemas que o JPA pode ter e como resolvê-los.
Você também encontrará 4 CRUDs (com código fonte) de diferentes frameworks que utilizam de diferentes abordagens.

Espero que você goste. [=

http://uaihebert.com/alternativas-ao-jpa-hibernate-o-que-usar-quando-o-jpa-nao-atende-meu-projeto/

11 Respostas

E

Putz, query complexa no hibernate é horrível!

Sofri com uma que tem UNION e uns SUM’s. Tive que usar sql nativo e voltar pro ResultSet.
Nem seguindo linha a linha a documentação do Hibernate eu consegui. :frowning:

Bem legal o post, o senhor tá de parabéns.

J

ErickRAR:
Putz, query complexa no hibernate é horrível!

Sofri com uma que tem UNION e uns SUM’s. Tive que usar sql nativo e voltar pro ResultSet.
Nem seguindo linha a linha a documentação do Hibernate eu consegui. :frowning:

Bem legal o post, o senhor tá de parabéns.


Decisão certa, embora não precise voltar pro ResultSet do JDBC. Hibernate dá pleno suporte a SQL nativo, o que mantem a facilidade do Hibernate de hidratar os objetos automaticamente. Independente disso, importante é sempre usar SQL nativo para consultas complexas e query via objetos para situações mais diretas. Muita gente se desdobra em relatórios pra usar Criteria, HQL, sei lá o que QL, mais por purismo, sendo que resolveria muito mais rápido por SQL, até mesmo na manutenção, por mais que o impacto seja maior, é mais fácil entender.

E

Foi bem isso mesmo. Eu fiquei foi encucado mesmo por ter misturado as coisas. Umas consultas e criteria e essa com query nativa. Na minha cabeça fica parecendo que é gambiarra, mas pelo que vi isso é bastante adotado por aí…

J

Alguns pensam como não boa prática, mas geralmente é quem não está no dia a dia do desenvolvimento pra atender da melhor forma problemas para Negócio. Importante é a clareza no que faz, o que vai se sentir mais confortável para evoluir. Cada ferramenta tem que ser usada onde a mesma for ajudar, se atrapalha não é adequada.

L

Hebert Coelho:
Neste post você verá alguns problemas que o JPA pode ter e como resolvê-los.
Você também encontrará 4 CRUDs (com código fonte) de diferentes frameworks que utilizam de diferentes abordagens.

Espero que você goste. [=

http://uaihebert.com/alternativas-ao-jpa-hibernate-o-que-usar-quando-o-jpa-nao-atende-meu-projeto/

Bacana… Estou lendo devagar. É bem grandinho o conteúdo.

Chave Composta: Essa, segundo minha opinião, é a maior dor de cabeça para quem desenvolve com o JPA. Ao mapear uma chave composta estamos adicionando uma enorme complexidade ao na hora de persistir, consultar e até mesmo na hora de mapear o objeto. Ao utilizar chave composta diversos problemas poderão aparecer, sendo que alguns desses problemas são bugs das implementações.

Isso realmente é algo que também me deixa muito descontente.
Pra contornar isso temos que mapear em classes complemente separadas das classes originais.
Parece ser contra intuitivo, mas só lendo pra entender porque é assim.

J

Luiz Augusto Prado:
Hebert Coelho:
Neste post você verá alguns problemas que o JPA pode ter e como resolvê-los.
Você também encontrará 4 CRUDs (com código fonte) de diferentes frameworks que utilizam de diferentes abordagens.

Espero que você goste. [=

http://uaihebert.com/alternativas-ao-jpa-hibernate-o-que-usar-quando-o-jpa-nao-atende-meu-projeto/

Bacana… Estou lendo devagar. É bem grandinho o conteúdo.

Chave Composta: Essa, segundo minha opinião, é a maior dor de cabeça para quem desenvolve com o JPA. Ao mapear uma chave composta estamos adicionando uma enorme complexidade ao na hora de persistir, consultar e até mesmo na hora de mapear o objeto. Ao utilizar chave composta diversos problemas poderão aparecer, sendo que alguns desses problemas são bugs das implementações.

Isso realmente é algo que também me deixa muito descontente.
Pra contornar isso temos que mapear em classes complemente separadas das classes originais.
Parece ser contra intuitivo, mas só lendo pra entender porque é assim.


Concordo, é uma decisão difícil querer usar Hibernate em base de dados legada ou com costumes do tipo.

L

javaflex:
Luiz Augusto Prado:
Hebert Coelho:
Neste post você verá alguns problemas que o JPA pode ter e como resolvê-los.
Você também encontrará 4 CRUDs (com código fonte) de diferentes frameworks que utilizam de diferentes abordagens.

Espero que você goste. [=

http://uaihebert.com/alternativas-ao-jpa-hibernate-o-que-usar-quando-o-jpa-nao-atende-meu-projeto/

Bacana… Estou lendo devagar. É bem grandinho o conteúdo.

Chave Composta: Essa, segundo minha opinião, é a maior dor de cabeça para quem desenvolve com o JPA. Ao mapear uma chave composta estamos adicionando uma enorme complexidade ao na hora de persistir, consultar e até mesmo na hora de mapear o objeto. Ao utilizar chave composta diversos problemas poderão aparecer, sendo que alguns desses problemas são bugs das implementações.

Isso realmente é algo que também me deixa muito descontente.
Pra contornar isso temos que mapear em classes complemente separadas das classes originais.
Parece ser contra intuitivo, mas só lendo pra entender porque é assim.


Concordo, é uma decisão difícil querer usar Hibernate em base de dados legada ou com costumes do tipo.

Mesmo atualmente, com os conceitos de orientação a objetos, acho esquisito “ter” que mapear em classes separadas as chaves compostas.

J

Luiz Augusto Prado:
javaflex:
Luiz Augusto Prado:
Hebert Coelho:
Neste post você verá alguns problemas que o JPA pode ter e como resolvê-los.
Você também encontrará 4 CRUDs (com código fonte) de diferentes frameworks que utilizam de diferentes abordagens.

Espero que você goste. [=

http://uaihebert.com/alternativas-ao-jpa-hibernate-o-que-usar-quando-o-jpa-nao-atende-meu-projeto/

Bacana… Estou lendo devagar. É bem grandinho o conteúdo.

Chave Composta: Essa, segundo minha opinião, é a maior dor de cabeça para quem desenvolve com o JPA. Ao mapear uma chave composta estamos adicionando uma enorme complexidade ao na hora de persistir, consultar e até mesmo na hora de mapear o objeto. Ao utilizar chave composta diversos problemas poderão aparecer, sendo que alguns desses problemas são bugs das implementações.

Isso realmente é algo que também me deixa muito descontente.
Pra contornar isso temos que mapear em classes complemente separadas das classes originais.
Parece ser contra intuitivo, mas só lendo pra entender porque é assim.


Concordo, é uma decisão difícil querer usar Hibernate em base de dados legada ou com costumes do tipo.

Mesmo atualmente, com os conceitos de orientação a objetos, acho esquisito “ter” que mapear em classes separadas as chaves compostas.


Com certeza. Particularmente prefiro não usar Hibernate em base de dados que usem chaves compostas (exceto many to many claro, a qual nem precisa mapear o que estamos criticando).

M

Sempre me incomodei com o fato de não poder contar com JPA pra tudo. Soluções que resolvem apenas metade dos problemas nunca me convenceram. Mas se a empresa onde trabalho adota assim como padrão, não iriei cortar os pulsos. heheheh

Primeira coisa que olho nesses projetos é se existe a possibildade da empresa em um futuro próximo mudar de banco ou de biblioteca de persistencia.

J

marcosalex:
Sempre me incomodei com o fato de não poder contar com JPA pra tudo. Soluções que resolvem apenas metade dos problemas nunca me convenceram. Mas se a empresa onde trabalho adota assim como padrão, não iriei cortar os pulsos. heheheh

Primeira coisa que olho nesses projetos é se existe a possibildade da empresa em um futuro próximo mudar de banco ou de biblioteca de persistencia.


Pois é, muitos casos se preocupam com isso sem necessidade. Grandes empresas que usam Oracle por exemplo dificilmente precisam lidar com isso.

L

marcosalex:
Sempre me incomodei com o fato de não poder contar com JPA pra tudo. Soluções que resolvem apenas metade dos problemas nunca me convenceram. Mas se a empresa onde trabalho adota assim como padrão, não iriei cortar os pulsos. heheheh

Primeira coisa que olho nesses projetos é se existe a possibildade da empresa em um futuro próximo mudar de banco ou de biblioteca de persistencia.

Huahahua… as vezes também penso isso, mas o que sugeriria no lugar?

Eu acho, a idéia do JPA e do Hibernate muito boas, sei que tem seus efeitos colaterais. Mas todas terão efeitos colaterais.

Temos uma cultura onde ninguém quer investir tempo desenvolvendo uma estrutura própria de persistência e acabam pegando o que já tem pronto, no mercado. Ai, por causa deste vício, capta-se funcionários com pouquíssimo conhecimento, mas que são capazes somente de executar a tarefa com o framework com o qual foram treinados. Vantagens x desvantagens…

É… mais um Cristo pro mundo malhar? A faculdade dos arqueiros substituída pela faculdade da pólvora.

No fim da idade média, levava-se 5 anos para se tornar um bom arqueiro. Com a invenção do mosquete, em 2 meses era suficiente para ensinar um soldado a atirar com eficiência muito maior do que a de seus concorrentes arqueiros. Um excelente soldado arqueiro perde espaço para um pereba armado. Vejam só como são as coisas… De repente, como numa profecia, de uma pseudociência como a alquimia, surge algo que ninguém esperava. Assim surgem as várias lendas de Hiram.

Fabriquem suas próprias “armas” porque… Nunca se sabe onde pode estar a idéia de 1.000.000 de dólares.

Criado 21 de agosto de 2014
Ultima resposta 1 de set. de 2014
Respostas 11
Participantes 5