Jump to content

Recommended Posts

Caros colegas, pesquisei bastante na net e aqui no fórum. Não encontrei uma resposta que pudesse satisfazer minha dúvida.

 

Seguinte, estou começando em JAVA e tenho diversas dúvidas, como muitos de nós mesmos.

 

O que seria Hibernate?(sei que tem materiais na internet, mas gostaria de respostas de pessoas que realmente utilizam dessa tecnologia). 

É utilizado ainda(hoje: 2017) ?

Por que utilizá-lo?

O mercado usa essa tecnologia?

 

Esta dúvida surgiu prq eu estava estudando um tutorial onde usa-se "servlets". Perguntei a uma amigo se ele utilizava e o mesmo disse que não. 

Então comecei a pesquisar sobre o assunto e vi que uns que utilizam e outros não. Os que utilizam, são pessoas que mexem no java na versão de 2014 pra baixo

e os que não utlizam, mexem no java de 2015 até hoje:2017.

 

Por isso surgiram essas dúvidas sobre o Hibernate. Também queria saber sobre o JPA. Vejo que existe um certo paralelo entre eles, ou seja, ou usa-se um  ou o outro ou os dois...em fim...

ficou meio confuso pra mim...

abço

Share this post


Link to post
Share on other sites

O hibernate é um framework ORM. você usa p/ mapear as classes java que são suas entidades de negócio p/ tabelas no banco relacional (Veja aqui um exemplo: https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/)

 

Se ainda é usado? você pode dar uma olhada nas vagas no LinkedIn digitando Hibernate como palavra-chave.

Quanto aos servlets: existem aplicações legadas que utilizam JSP ao invés de JSF/ManagedBeans. Eventualmente você vai precisar saber alguma coisa sobre eles. Hoje é comum encontrar mais pessoas usando frameworks como ZK, Vaadin e Spring.

JPA é uma especificação. O Hibernate nasceu sem essa especificação e foi a partir dele que ela foi desenvolvida. O JPA descreve um padrão p/ frameworks de persistência.

Share this post


Link to post
Share on other sites
10 horas atrás, _Isis_ disse:

O hibernate é um framework ORM. você usa p/ mapear as classes java que são suas entidades de negócio p/ tabelas no banco relacional (Veja aqui um exemplo: https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/)

 

Se ainda é usado? você pode dar uma olhada nas vagas no LinkedIn digitando Hibernate como palavra-chave.

Quanto aos servlets: existem aplicações legadas que utilizam JSP ao invés de JSF/ManagedBeans. Eventualmente você vai precisar saber alguma coisa sobre eles. Hoje é comum encontrar mais pessoas usando frameworks como ZK, Vaadin e Spring.

JPA é uma especificação. O Hibernate nasceu sem essa especificação e foi a partir dele que ela foi desenvolvida. O JPA descreve um padrão p/ frameworks de persistência.

 

Bem legal o teu resumo.

Grato! 

: )

Share this post


Link to post
Share on other sites
Em 06/08/2017 at 08:30, _Isis_ disse:

O hibernate é um framework ORM. você usa p/ mapear as classes java que são suas entidades de negócio p/ tabelas no banco relacional (Veja aqui um exemplo: https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/)

 

Se ainda é usado? você pode dar uma olhada nas vagas no LinkedIn digitando Hibernate como palavra-chave.

Quanto aos servlets: existem aplicações legadas que utilizam JSP ao invés de JSF/ManagedBeans. Eventualmente você vai precisar saber alguma coisa sobre eles. Hoje é comum encontrar mais pessoas usando frameworks como ZK, Vaadin e Spring.

JPA é uma especificação. O Hibernate nasceu sem essa especificação e foi a partir dele que ela foi desenvolvida. O JPA descreve um padrão p/ frameworks de persistência.

 

 

Vejo pessoas falando bem e mal. Daí fica complicado estabelecer uma ideia de algo que não conheço.

Por isto, abri o tópico. Queria entender, na prática de alguns ou muitos, a preferência e o ponto de vista de cada qual.

Share this post


Link to post
Share on other sites

O "falar bem e mal" depende do projeto. Já vi alguns blogs comentando situações específicas em que o Hibernate deixava de ser uma mão na roda e passava a incomodar.

Share this post


Link to post
Share on other sites

Todo framework tem vantagens e desvantagens, senão tivesse desvantagens todo mundo teria obrigatoriamente que usa-lo. Pra mim é o seguinte:

 

Por regra use o Hibernate, porque você não vai precisar escrever INSERT INTO, SELECT * FROM, UPDATE SET  toda vez, basta  mapear a entidade e dar um merge, find, só por isso, é mais produtivo. Agora se você precisa de alta performance por exemplo quando tem que processar alguns milhões de registros por dia, esqueça o Hibernate. Se você faz queries muito personalizadas que fazem aqueles relatorios malucos com SQLs de 50-500 Linhas aí também não sei se compensa usar o Hibernate por que voce vai ter que fazer um mapper que é bem mais zuado que o do JDBC.

 

Então a conclusão é que sempre depende cara, mas te dei alguns exemplos de quando compensa e quando não. Na minha opinião.

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Alisson Hoepers
      Olá pessoal! Para mostrar a lista de um cadastro no meu sistema, eu populo a consulta em um DTO conforme abaixo. Minha pergunta é: Existe uma forma mais simples de popular a consulta na lista do DTO de forma mais simples?
       
      public List<ObjetoDTO> find(Query query) {     @SuppressWarnings("unchecked") List<Object[]> queryResult = query.getResultList(); List<ObjetoDTO> list = new ArrayList<>(); if (queryResult.isEmpty() == false) { for (Object[] item : queryResult) { ObjetoDTO dto = new ObjetoDTO(); dto.setId((Integer) item[0]); dto.setTitulo((String) (item[1])); dto.setDescricao((String) (item[2])); list.add(dto); } } return list; }  
    • By manoveio1
      Gostaria de gravar uma sequencia numérica no banco de dados.
      Exemplo:
      No programa tem um campo onde o usuário vai informar o numero inicial :
      Informe o numero inicial: 200
      Outro campo pede quantidade gerada a partir desse numero informado:
      Informe a quantidade a ser gerada: 50
      Um botão: Gerar
      A partir dai o programa tem que gerar os 50 numero a partir do numero informado e gava los em um banco de dados: 200-201-203…ate 249.
      Como fazer?
    • By Christophersons
      Estou com um problema e não consigo resolver...
       
      @Entity @Table(name = "Quadro") @TableModel public class Quadro implements Serializable, Entidade<Quadro> { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @OneToOne private Quadro quadroPai; @OneToMany() private List<Quadro> listaQuadros = new ArrayList<Quadro>(); . . . Como faço o mapeamento correto da listaQuadros e também de quadroPai que é do mesmo tipo da classe?
      A ideia de funcionamento é que um quadro elétrico pode alimentar outro quadro elétrico ou mais.
    • By MarKteus
      Olá

      Estou enfrentando um problema bem chato com Java aqui em meu projetos, vejam:
      2019-02-01 08:57:06.469 ERROR 18120 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause com.microsoft.sqlserver.jdbc.SQLServerException: Nome de objeto 'db_mybank.dbo.edification' inválido.     at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) ~[mssql-jdbc-6.4.0.jre8.jar:na] Percebam que ali no nome do objeto está sendo inserido um underline ou underscore como queiram, porém esse traço não é para ser exibido a inserção do mesmo faz com que o objeto não seja encontrado, o pior é que na especificação da classe está correto vejam:
       
      import javax.persistence.Table; @Entity @Table(name = "tbedification", schema = "dbo", catalog = "dbmybank") public class edification implements Serializable { /** * Alguém consegue me ajuda com isso, acho que o hibernate está "zuando" alguma coisa

      Estou usando a ide Eclipse Neon e SpringBoot
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.