SóProvas



Questões de Hibernate


ID
27298
Banca
FCC
Órgão
TRE-SE
Ano
2007
Provas
Disciplina
Programação
Assuntos

Sendo um grupo de classes e componentes responsáveis pelo armazenamento e recuperação de dados, esta camada inclui necessariamente um modelo das entidades do domínio de negócios (mesmo que seja somente um modelo de metadados). No âmbito do mapeamento objetorelacional (hibernate) esta é a camada de

Alternativas
Comentários
  • Camada de Apresentação: a camada de apresentação está no topo da arquitetura.É responsável, principalmente, por implementar a parte da aplicação na qual o usuário deve interagir. A saber, controle do fluxo de páginas e preenchimento de formulários;Camada de Negócio: esta camada é responsável em implementar todo códigoresponsável pela lógica de negócio. Boa parte da complexidade do sistema éimplementada e resolvida por esta camada;Camada de Persistência: a camada de persistência compreende o grupo de classesresponsáveis em persistir dados e informações, como também, recuperá-los de egerenciá-los de forma eficiente.
  • Apresentação

    Negócio

    Persistência

    Camada de Apresentação: Lógica de interface do usuário (GUI). O código responsável pela apresentação e controle da página e tela de navegação forma a camada de apresentação;

    Camada de Negócios: Código referente a implementação de regras de negócio ou requisitos do sistema;

    Camada de persistência: Responsável por armazenamento e recuperação dos dados quando solicitado. objetivo é o de garantir uma independência da fonte de dados (arquivos, bancos de dados, etc) e ao mesmo tempo manter as informações entre diferentes sessões de uso.

    Arquitetura MVC

    Model – Representa os dados da aplicação e as regras de negócio (business logic)

    View – Representa a informação recebida e enviada ao usuário

    Controller – Recebe as informações da entrada e controla o fluxo da aplicação


ID
106180
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Programação
Assuntos

Usando Hibernate, o mapeamento de uma relação de herança pode ser feito usando uma tabela por

Alternativas
Comentários
  •  O Hibernate suporta três estratégias de mapeamento de herança

     

    • Uma tabela por hierarquia de classes
    • Uma tabela por subclasse
    • Uma tabela por classe concreta (polimorfismo implicito)
    • Não é possível misturar as estratégias para um mesmo mapeamento de classe

     

    http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.

    =
    = Comentários Adicionais (07/11/2011) ==

    Hierarquia de Classes.




    Classe Concreta

    Uma tabela por Subclasse
  • Questão correta, pois realmente existem 3 formas de mapear herança com o Hibernate:
    1) Uma tabela por classe concreta 
     - Dados não normalizados 

     - Depende de um UNION para consultas na superclasse.  

    -  Ideal para hierarquias horizontais  

    2)Uma única tabela para toda hierarquia de classes

     - Utiliza discriminator para diferenciar elementos da hierarquia.

     - Queries são feitas em uma única tabela, que pode se tornar bastante grande. 

     - Modelo mais simples. Modelo default. Ideal para hierarquias com poucas classes.  

    3)Uma tabela por classe da hierarquia 

    - Permite associações e consultas polimórficas  

    - Dados normalizados. Sempre realiza join.  

    - Usado em hierarquias de muitos níveis (verticais).

    Bons estudos!

  • Mesmo acertando, ainda achei a questão um pouco confusa se olhar ao "pé da letra" ou possíveis ambiguidades.

    A questão ainda está levemente mal descrita.

    Pois classes concretas podem ser apenas subclasses de uma classe abstrata.

    Quando ele fala subclasses, chegamos a uma mesma conclusão da afirmativa feita acima, dando exatamente na mesma coisa.

    Hierarquia, não tem nem o que falar.

    Creio que a descrição abaixo seria mais adequada.

    Tabela única para todas as classes (single table)

    Uma tabela para cada classe da hierarquia (joined)

    Uma tabela para cada classe concreta (table per class) 


ID
126940
Banca
CESPE / CEBRASPE
Órgão
CEHAP-PB
Ano
2009
Provas
Disciplina
Programação
Assuntos

No framework Hibernate, é comum que uma instância de uma classe persistente tenha três estados específicos. Assinale a opção que contém esses três estados.

Alternativas
Comentários
  • ObjetosTransientes - são objetos que suas instâncias não estão nem estiveram associados a algum contexto persistente ObjetosPersistentes - são objetos que suas instâncias estão associadas a um contexto persistente ObjetosDetached - são objetos que tiveram suasinstâncias associadas aumcontexto persistente, mas que por algum motivo deixaram de ser associadas [1] http://www.scribd.com/doc/33473237/Introducao-ao-Hibernate

     

  •  No Hibernate,  são o três possíveis estados no quais uma instância de uma classe persistente pode estar:

     

    Detached

    Persistent

    Transient.


ID
130066
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Com relação aos frameworks de software, julgue os itens
subseqüentes.

O objetivo do framework Hibernate é facilitar a integração entre os modelos orientados a objeto e os que usam banco de dados no modelo relacional.

Alternativas
Comentários
  • CESPE anulou por considerar o enunciado ambíguo, o que dificulta a avaliação.

ID
144649
Banca
CESPE / CEBRASPE
Órgão
SECONT-ES
Ano
2009
Provas
Disciplina
Programação
Assuntos

Julgue os próximos itens, que se referem a frameworks Java
Server Faces (JSF) e Hibernate.

O Hibernate, um framework de mapeamento objeto relacional (ORM), cria uma camada persistência na solução desenvolvida, o que permite ligar os objetos aos bancos de dados relacionais. Entre seus serviços, o Hibernate provê um meio de se controlar transações, por meio de métodos de suas interfaces session e transaction, tendo ainda suporte a herança e polimorfismo. É distribuído sob a licença LGPL, o que permite seu uso em projetos comerciais ou open source.

Alternativas
Comentários
  • O Hibernate é um framework que implementa persistência O/R (objeto/relacional) para Java. Permite desenvolver classes persistentes em Java, utilizando heranças, associações, entre outros elementos. Além disso, o Hibernate também possui a HQL
    (Hibernate Query Language) uma extensão da linguagem SQL (Structured Query Language) normal, onde se adicionam extensões orientadas a objeto.
    O Hibernate está sobre a licença LGPL (Lesser General Public License), o que significa que ele é um software livre que pode ser utilizado juntamente com softwares comerciais

    A arquitetura do Hibernate é formada basicamente por um conjunto de interfaces. As interfaces: Session, Transaction e Query são responsáveis por operações como: atualização, remoção e consulta para o BD, além de serem os responsáveis por executar operações de criação.

    fonte: http://bibdig.poliseducacional.com.br/document/?view=107


ID
144655
Banca
CESPE / CEBRASPE
Órgão
SECONT-ES
Ano
2009
Provas
Disciplina
Programação
Assuntos

Julgue os próximos itens, que se referem a frameworks Java
Server Faces (JSF) e Hibernate.

No índice de agrupamento ou denso, a ordenação física dos dados e do índice é a mesma, ou seja, a chave de busca também define a ordem sequencial dos dados, podendo haver, no máximo, dois índices desse tipo por tabela. Apesar de exigirem mais sobrecarga de manutenção para inserções e exclusões, é mais rápido localizar um registro com uso do índice esparso que com o índice de agrupamento.

Alternativas
Comentários
  • "No índice de agrupamento ou denso" - ERRADO. O Indice de agrupamento é esparço. Além disso, denso é uma caracterísitca de índices, e não um tipo de índice.

    "a ordenação física dos dados e do índice é a mesma" - CERTO. Agrupamento opera sobre campos ordenados. Portanto, o índice e os dados terão a mesma ordenação

    ", ou seja, a chave de busca também define a ordem sequencial dos dados, podendo haver, no máximo, dois índices desse tipo por tabela. " - ERRADO. Podemos ter apenas 1 índice Principal/Primário OU 1 índice de agrupamento/clusterin

    "Apesar de exigirem mais sobrecarga de manutenção para inserções e exclusões, é mais rápido localizar um registro com uso do índice esparso que com o índice de agrupamento. " - ERRADO denovo. Esparço é uma característica dos índices. E o índice de agrupamento é esparço.

    Ou seja, cheio de erro :)

    A idéia de termos índices em um SGBD é para facilitar buscas.
    Imagine uma agenda. É como pesquisar no índice qual a página que se encontra os nomes iniciados com letra "L".
    O banco realiza a busca sobre a tabela de índice. O índice retorna um ponteiro para a localização em disco dos dados procurados (como se fosse a página da agenda). De posse desta informação, podemos fazer uma busca sequencia no local apontado (seria como ler nome por nome da folha da agenda).

    Os índices podem ser de nível único (primário, clustering/agregação) ou multinível (árvores)

    Primário ou Principal: opera sobre atributos chaves. A idéia é criar uma tablea de índices, bem ao estilo de agenda. A tabela de índice terá duas colunas: valor da chave, ponteiro para o local do registro associado à chave em disco. Aí vocês perguntam, pra quê criar uma segunda tabela? Não é mais fácil pesquisar diretamente na tabela original? Certamente não. A tabela original contem, além de atributo chave, vários outros atributos. A tabela de índice é enxuta. Além disso, a tabela de índice não tem uma cópia de todas as chaves. Ele elege algumas chaves estratégicas. Por exemplo, na tabela de nomes, poderíamos ter índices somente para A,J,Z. Isso já nos reduziria 1/3 da área de busca na tabela original.
    A desvantagem deste método é o custo de inserção e remoção. Quando adicionar registro, todos os demais registros precisaram ser movidos para manter a ordenção do campo. Consequentemente, a tabela de índice também será alterada.

    Clustering/Agregação: Se você tiver um campo não chave ordenados e com valores que se repetem muito, é ideal ter um índice de clustering. A tabela de índice terá um valor para cada item distinto do campo a ser indexado. A tabela de índice vai te indicar onde está o arquivo daquele agrupoamento que você procura.

    Os índices podem ser classificados em:

    Denso - Uma entrada na tabela de índice para cada registro da tabela original
    Esparço - Cada entrada de índice aponta para o primeiro elemento de um grupo da tabela original.

ID
144892
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2009
Provas
Disciplina
Programação
Assuntos

Acerca do desenvolvimento de aplicações web e XML, julgue os itens seguintes.

Considerando que para o uso da tecnologia Hibernate na linguagem Java são empregados, usualmente, dois tipos de arquivos: (i) configuração e (ii) mapeamento, sendo a lista a seguir uma sequência de elementos XML utilizados na tecnologia Hibernate: (a) hibernate-mapping (b) class; (c) generator; (d) property; (e) session-factory; e (f) mapping, então, uma associação adequada entre os elementos e o tipo de arquivo Hibernate, no qual eles usualmente são empregados, é a seguinte: {(a, ii), (b, ii), (c, i), (d, ii), (d, i), (e, i), (f, i)}.

Alternativas
Comentários
  •  O erro está no  (f) mapping que é do tipo (ii) mapeamento e está citado como (f, i)

  •  Arquivos de configuração(i) possuem tipicamente:
     - hibernate-configuration
     - session-factory(e)
     - property(dialeto, driver de conexão, url, usuário e senha)
     - mapping-resource

    Arquivos de mapeamento(ii) possuem:
     - hibernate-mapping(a)
     - class(b)
     - id
     - generator(c)
     - proprety(d)

     

    [1] http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.htm

  • Errado.

    O erro está em (c, i). "generator" é utilizado no mapeamento. Os outros itens estão certos. Ao contrário do que o amigo em cima disse, o elemento "mapping" não faz parte do arquivo de mapeamento, mas sim do arquivo de configuração.
    Fonte:
    DTDs do Hibernate que, na data da escrita deste, podem sem encontrados em http://www.jboss.org/dtd/hibernate/
  • Além do erro (c,i) há outro: (d, ii), (d, i).
    Associou o property tanto para o mapeamento (correto) quanto para o arquivo de configuração.


ID
157909
Banca
CESGRANRIO
Órgão
TJ-RO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Sobre o framework de mapeamento objeto/relacional Hibernate, é correto afirmar que

Alternativas
Comentários
  • a) Falso. Um objeto vinculado a uma sessão (em estado persistent) é atualizado automaticamente. 

    b) Falso. Detached é o estado dos objetos após o fechamento da sessão (após a vinculação, não antes). O estado mencionado é transient.

    c) Falso. Se um objeto está vinculado a uma sessão, ele está no estado persistent.

    d) Falso. Este estado é detached.

    e) Verdadeiro.

     Hibernate defines three states for object instances: persistent, detached, and transient.

    Persistent objects are ones that are currently associated with a Hibernate session; as soon as the session is closed (or the object is evicted), the objects become detached. Hibernate ensures that Java objects in a persistent state for an active session match the corresponding record(s) in the database. Transient objects are ones that are not (and most likely, never were) associated with Hibernate session and also do not have an object identity.   Fonte: http://media.techtarget.com/tss/static/articles/content/AgileJavaDev/Hibernate.pdf   Transient classes are instances that have not been saved to the database. To make a transient instance persistent, simply save it using the Session class   Fonte: http://www.systemmobile.com/?p=11
  • Somente complementando o excelente comentário do colega acima. 

     • Transient  - um objeto é transiente se ele foi instanciando usando apenas o operador new  e não foi associado a uma Session  do Hibernate. Ele não possui uma representação persistente no banco de dados e não lhe foi atribuído nenhum identificador. Instâncias transientes serão destruídas pelo coletor de lixo se a aplicação não mantiver sua referência. Use uma Session  do Hibernate para tornar o objeto persistente (e deixe o Hibernate gerenciar as instruções SQL que serão necessárias para executar esta transição).

    • Persistent  - uma instância persistente possui uma representação no banco de dados e um

    identificador. Ela pode ter sido salva ou carregada, portanto ela se encontra no escopo de uma

    Session . O Hibernate irá detectar qualquer mudança feita a um objeto persistente e sincronizar

    o seu estado com o banco de dados quando completar a unidade de trabalho. Desenvolvedores

    não executam instruções manuais de UPDATE , ou instruções de DELETE  quando o objeto se

    tornar transiente.

    • Detached  – uma instância desanexada é um objeto que foi persistido, mas sua Session

     foi fechada. A referência ao objeto continua válida, é claro, e a instância desanexada pode

    ser acoplada a uma nova Session  no futuro, tornando-o novamente persistente (e todas as

    modificações sofridas). Essa característica habilita um modelo de programação para unidades

    de trabalho de longa execução, que requeira um tempo de espera do usuário. Podemos chamálas

    de transações da aplicação , ou seja, uma unidade de trabalho do ponto de vista do usuário.


ID
195358
Banca
CESPE / CEBRASPE
Órgão
TCU
Ano
2010
Provas
Disciplina
Programação
Assuntos

Uma equipe de desenvolvimento de software recebeu a
incumbência de desenvolver um sistema com as características
apresentadas a seguir.

* O sistema deverá ser integrado, interoperável, portável e
seguro.
* O sistema deverá apoiar tanto o processamento online, quanto
o suporte a decisão e gestão de conteúdos.
* O sistema deverá ser embasado na plataforma JEE (Java
enterprise edition
) v.6, envolvendo servlets, JSP (Java server
pages
), Ajax, JSF (Java server faces) 2.0, Hibernate 3.5, SOA
e web services.

O líder da equipe iniciou, então, um extenso processo de
coleta de dados com o objetivo de identificar as condições
limitantes da solução a ser desenvolvida e tomar decisões
arquiteturais e tecnológicas que impactarão várias características
funcionais e não funcionais do sistema, ao longo de seu ciclo de
vida. A partir dessa coleta, o líder deverá apresentar à equipe um
conjunto de informações e de decisões.

Com relação às tecnologias para desenvolvimento web em Java que
podem ser empregadas no sistema descrito no texto, julgue os itens
a seguir.

A tecnologia Hibernate 3.5 é apropriada para o projeto em questão: entre as características que a credenciam, estão a integração com servidores de aplicação via JNDI e o suporte a mapeamento objeto relacional em modos básico e avançado, possibilitando o mapeamento de coleções e de associações, entre outros.

Alternativas
Comentários
  • certinho! via jta-datasource rola a integração com servidores JNDI e o mapeamento é feito com @Entity @OneToMany e por ai vai


ID
195361
Banca
CESPE / CEBRASPE
Órgão
TCU
Ano
2010
Provas
Disciplina
Programação
Assuntos

Uma equipe de desenvolvimento de software recebeu a
incumbência de desenvolver um sistema com as características
apresentadas a seguir.

* O sistema deverá ser integrado, interoperável, portável e
seguro.
* O sistema deverá apoiar tanto o processamento online, quanto
o suporte a decisão e gestão de conteúdos.
* O sistema deverá ser embasado na plataforma JEE (Java
enterprise edition
) v.6, envolvendo servlets, JSP (Java server
pages
), Ajax, JSF (Java server faces) 2.0, Hibernate 3.5, SOA
e web services.

O líder da equipe iniciou, então, um extenso processo de
coleta de dados com o objetivo de identificar as condições
limitantes da solução a ser desenvolvida e tomar decisões
arquiteturais e tecnológicas que impactarão várias características
funcionais e não funcionais do sistema, ao longo de seu ciclo de
vida. A partir dessa coleta, o líder deverá apresentar à equipe um
conjunto de informações e de decisões.

Com relação às tecnologias para desenvolvimento web em Java que
podem ser empregadas no sistema descrito no texto, julgue os itens
a seguir.

A tecnologia Hibernate 3.5 é apropriada para o sistema a ser desenvolvido: entre as características que a credenciam, está o fato de ela possibilitar a recuperação de objetos por meio da formulação de queries em linguagens HQL (hibernate query language) e SQL (structured query language), bem como pelo uso de APIs (application programming interfaces) de busca por critério, entre outras.

Alternativas
Comentários
  • Correspondem aos 3 tipos de acesso a banco de dados, através do Hibernate:

    HQL - Hibernate Query Language - Linguagem de consulta orientada a objeto
    Criteria API - Uma API orientada a objeto para busca. Mais próximo de desenvolvedores que não conhecem linguagens de consulta
    SQL - a linguagem nativa do BD

    Exemplo de como fica a consulta nestes 3 tipos:



    Logo, questão Correta!
  • A tecnologia Hibernate 3.5 é apropriada para o sistema a ser desenvolvido: entre as características que a credenciam, está o fato de ela possibilitar a recuperação de objetos por meio da formulação de queries em linguagens HQL (hibernate query language) e SQL (structured query language), bem como pelo uso de APIs (application programming interfaces) de busca por critério, entre outras.

    entre outras? quais?
  • Concordo com o Cesar Santos, se alguém souber de uma outra forma de consulta que não seja Criteria, SQL e HQL favor divagar sobre.


ID
218185
Banca
CESPE / CEBRASPE
Órgão
TRE-BA
Ano
2010
Provas
Disciplina
Programação
Assuntos

Julgue o item abaixo, referente ao Hibernate.

No Hibernate, apenas a linguagem de consulta HQL (hibernate query language) pode ser utilizada. A HQL executa os pedidos SQL sobre as classes de persistência do Java em vez de tabelas no banco de dados, o que diminui a distância entre o desenvolvimento das regras de negócio e o banco de dados.

Alternativas
Comentários
  •  O Hibernate não utiliza somente a linguagem de consulta (HQL  - hibernate Query Language), podemos fazer as consultas programando na linguagem java, por exemplo, utilizando o entityManager (um objeto java responsável pelas operações de persistência) para efetuar consultas.

  •  Não é apenas usando HQL que se pode fazer consultas no Hibernate. Pode-se usar também SQL nativo.

  • Existem  três meios de se fazer buscas usando o Hibernate, usando a sua linguagem própria de buscas, a Hibernate Query Language (HQL), usando a sua  Criteria Query API  (para montar buscas programaticamente) e usando SQL puro.

  • Existem 2 erros nessa questão:

    1° - No Hibernate você pode usar tanto SQL quanto HQL.

    2° - Ao se utilizar HQL, os pedidos são executados sobre as classes de persistência do Java em vez de tabela no banco de dados, o que AUMENTA a distância entre o desenvolvimento das regras de negócio e o banco de dados.
  • apenas a linguagem de consulta HQL (hibernate query language) pode ser utilizada.

    Errada!

    Você também pode usar Criteria API e SQL puro


ID
240523
Banca
FCC
Órgão
TRT - 22ª Região (PI)
Ano
2010
Provas
Disciplina
Programação
Assuntos

Hibernate é um framework

Alternativas
Comentários
  • O objetivo do Hibernate é diminuir a complexidade entre os programas Java, baseado no modelo orientado a objeto, que precisam trabalhar com um banco de dados do modelo relacional (presente na maioria dos SGDBs). Em especial, no desenvolvimento de consultas e atualizações dos dados.

     

    ALTERNATIVA E

  • a) JSF
    b) EJB
    c) EJB
    d) JSP
    d) Hibernate

ID
240736
Banca
FCC
Órgão
TRT - 8ª Região (PA e AP)
Ano
2010
Provas
Disciplina
Programação
Assuntos

Os três estados de objeto definidos pelo framework Hibernate são:

Alternativas
Comentários
  • O Hibernate define e suporta os seguintes estados de objetos:

    Transient - um objeto é transiente se ele foi instanciando usando apenas o operador new e não foi associado a uma Session do Hibernate. Ele não possui uma representação persistente no banco de dados e não lhe foi atribuído nenhum identificador. Instâncias transientes serão destruídas pelo coletor de lixo se a aplicação não mantiver sua referência. Use uma Session do Hibernate para tornar o objeto persistente (e deixe o Hibernate gerenciar as instruções SQL que serão necessárias para executar esta transição).

    Persistent - uma instância persistente possui uma representação no banco de dados e um identificador. Ela pode ter sido salva ou carregada, portanto ela se encontra no escopo de uma Session. O Hibernate irá detectar qualquer mudança feita a um objeto persistente e sincronizar o seu estado com o banco de dados quando completar a unidade de trabalho. Desenvolvedores não executam instruções manuais de UPDATE, ou instruções de DELETE quando o objeto se tornar transiente.

    Detached – uma instância desanexada é um objeto que foi persistido, mas sua Session foi fechada. A referência ao objeto continua válida, é claro, e a instância desanexada pode ser acoplada a uma nova Session no futuro, tornando-o novamente persistente (e todas as modificações sofridas). Essa característica habilita um modelo de programação para unidades de trabalho de longa execução, que requeira um tempo de espera do usuário. Podemos chamá-las de transações da aplicação, ou seja, uma unidade de trabalho do ponto de vista do usuário.

     

    ALTERNATIVA D


  • http://img211.imageshack.us/img211/153/hibernate1.png

    Conforme mostra o diagrama de estado ao lado, temos os estados TRANSIENTE, PERSISTENT e DETACHED.

    Objetos que estão no estado TRANSIENT foram instanciados (new) e nunca estiveram associados a algum contexto persistente. Se eles forem destruídos (garbage), não poderão ser recuperados.

    Objetos que se associam a um contexto persitente, passam a ter uma identidade no banco de dados, esse é o estado PERSISTENT.

    DETACHED são objetos que estavam associados a uma sessão que foi fechada, eles então podem estar desatualizados em relação ao que foi persistido no BD. Quando essa atualização acontece ( update()/saveOrUpdate() ) eles se tornam novamente PERSISTENT.

    Objetos TRANSIENT e DETACHED podem ser coletados para a destruição.

ID
241672
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Provas
Disciplina
Programação
Assuntos

Em relação ao Hibernate 3.5.1-final, julgue os itens a seguir.

A conexão da aplicação com o banco de dados pode ser realizada por meio da rede de conexão interna do Hibernate, que é bastante eficiente para uso em ambiente de produção.

Alternativas
Comentários
  • Esse pool interno que vem com o Hibernate é suficiente para quando estamos desenvolvendo ou testando a aplicação. Para rodá-la em um ambiente de produção, contudo, não é recomendável o uso de uma implementação tão simples de connection pool.
  • "O pool de conexão interna do Hibernate não é recomendado para uso de produção. Ele possui deficiência em diversos recursos encontrados em qualquer pool de conexão apropriado."

    Referência:
    [1] http://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/tutorial.html#tutorial-firstapp-configuration
    [2] http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/tutorial.html#tutorial-firstapp-configuration

ID
241675
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Provas
Disciplina
Programação
Assuntos

Em relação ao Hibernate 3.5.1-final, julgue os itens a seguir.

O C3P0 é uma rede de conexão JDBC, de código aberto, distribuído junto com o Hibernate, no diretório lib.

Alternativas
Comentários
  • Qualquer aplicação web que acesse bancos de dados precisa estar preparada para receber vários acessos simultâneos de usuários acessando a página e ainda assim acessar o banco de dados usando uma conexão com o banco. Mas o que acontece quando o número de usuário é muito grande? Cada vez que uma requisição é feita, o servidor deve abrir uma conexão com o banco de dados e fechá-la no final da requisição? Além do tempo de latência ser grande ao ficar abrindo e fechando conexões com o banco, deixando o sistema mais lento, isso simplesmente pode deixar a aplicação inutilizável no caso de um número grande de requisições.

    Para evitar que isso aconteça, é recomendado o uso de um connection pool para as conexões com o banco dados. Um connection pool significaria “piscina de conexões” em português. Basicamente, é uma camada que fica entre o cliente de banco de dados, que faz as conexões com o banco, e o próprio banco.

    Mas o que faz o pool? Basicamente, ele mantém certo número de conexões abertas com o banco de dados. Quando o cliente Java abre uma conexão usando o pool, ao invés de abrir uma nova conexão com o banco usando o driver JDBC, este simplesmente pega uma das conexões que ele já mantinha aberta com o banco e a marca como alocada para aquele cliente Java

  • o comentário do leo está perfeito, mas segue um pequeno detalhe:
    "C3P0 is an easy-to-use library for augmenting traditional (DriverManager based) JDBC drivers with JNDI-bindable DataSources, including DataSources that implement Connection and Statement Pooling, as described by the jdbc3 spec and jdbc2 standard extensio."

    fonte: http://java-source.net/open-source/connection-pools/c3p0
  • O C3P0 é um pool conexão JDBC de código aberto distribuído junto com Hibernate no diretório lib. O Hibernate usará o próprio  org.hibernate.connection.C3P0ConnectionProvider para o pool de conexão se você configurar a propriedade  hibernate.c3p0.*

    http://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/pdf/hibernate_reference.pdf
  • Gabarito Certo

    C3p0 é uma biblioteca “easy-to-use” usada para fornecer a capacidade de pooling de conexões.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • hj o mais usuario é o HIKARI


ID
249436
Banca
CESPE / CEBRASPE
Órgão
DETRAN-ES
Ano
2010
Provas
Disciplina
Programação
Assuntos

A respeito da orientação a objetos e das respectivas linguagens de
programação, julgue os itens subsequentes.

O Hibernate, framework utilizado no desenvolvimento de consultas e atualização de dados em um banco relacional, foi criado para facilitar a integração entre programas em Java, funcionando também em ambientes .Net (NHibernate).

Alternativas
Comentários
  • Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net como o nomeNHibernate. Este programa 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) para estabelecer esta relação.

    Fonte: Wikipedia
  • Eu discordo do gabarito, pois o Hibernate não facilita a integração entre programas JAVA, mas sim, integração entre programas JAVA e SGBDs Relacional.
    Mas quem sou eu para brigar como CESPE.  :-)))
  • "integração entre programas java" ?????

  • O Hibernate também é oferecido para executar a mesma função na plataforma .NET – é o famoso NHibernate.


ID
311866
Banca
FCC
Órgão
TRT - 14ª Região (RO e AC)
Ano
2011
Provas
Disciplina
Programação
Assuntos

Quanto ao Hibernate no ambiente Java, considere:

I. Sua principal característica é a transformação das classes Java para tabelas de dados porém não dos tipos de dados Java para os da SQL.

II. Nas aplicações standalone, delega o tratamento transacional ao driver JDBC.

III. Pode ser utilizado em aplicações Java standalone ou em aplicações Java EE.

É INCORRETO o que se afirma, APENAS em

Alternativas
Comentários

ID
316333
Banca
FCC
Órgão
TRE-RN
Ano
2011
Provas
Disciplina
Programação
Assuntos

No Hibernate,

Alternativas
Comentários
  • a) ERRADO. É o arquivo de mapeamento é um arquivo XML que define as propriedades e os relacionamentos de uma
    classe para o Hibernate, este arquivo pode conter classes, classes componentes e queries em HQL ou em
    SQL.
    b) ERRADO. Tem como o desenvolvedor implementar INSERT utilizando o HIBERNATE.
    c) CORRETO.
    d) ERRADO. Os aqrquivos são em XML, e não em HTML.
    e) ERRADO. O desenvolvedor não acessa diretamente as tabelas do banco de dados, o HIBERNATE cria um mapeamento objeto/relacional, e o desenvolvedor acessa objetos.
  • Caramba!!!
    A FCC é fundação COPIA e COLA literalmente!!!
    Pensava que era só sacanagem da galera... 

    http://www.guj.com.br/content/articles/hibernate/intruducao_hibernate3_guj.pdf
  • Hoje em dia existe o recurso de Annotation, portanto a letra A também estaria correta.
    Esta questão deveria ser marcada como DESATUALIZADA.

  • Mas, é uma questão de 2011
  • Absurdo.... a tempos que o Hibernate permite mapear usando anotação... a letra A também está correta.
  • É só utilizar o teorema do chutágoras.

    mas não deu certo.. ;/
  • Errei a questão, pois marquei exatamente a letra A, devido ao recurso a possibilidade de utilizarmos as anotações.
    Mais uma casca de banana da FCC.
  • Concordo com o @Eduardo Ribeiro.

    Questão DESATUALIZADA, hoje você pode colocar mapear as tabelas com annotations (@Entity, @Column e etc) sem usar xml

  • é um absurdo a falta de competência dessa banca. Precisamos de uma lei de concursos urgente.

    Bom, o único erro que achei na letra A foi de português. Deve ter sido isso. Além de separar sujeito de verbo a FCC colocou um sujeito com preposição.. SHOW:

    No Hibernate, executa operações de busca, cadastro ou alteração de dados, sem requerer mapeamento da tabela em arquivo XML

    e vamos continuar nessa corrida, tentando desviar dessas cascas de bananas criadas pela incompetência!!!!

    Abraços
  • Mesmo que a questão seja de 2011, o recurso de mapeamento com annotations no Hiberntate, que dispensaria o uso de XML, está disponível desde 2005, o que tornaria a letra A correta também. Deveria ser anulada essa questão.

ID
319684
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

O Hibernate é um framework, padrão DAO, que faz o mapeamento de informações do banco de dados para componentes Java. Em relação às características do Hibernate 3.5.1, assinale a opção correta.

Alternativas

ID
321085
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Programação
Assuntos

A respeito de desenvolvimento de projetos de sistemas, julgue os itens subsequentes.

No Hibernate, o recurso Query Cache possibilita fazer o cache de queries que são executadas várias vezes.

Alternativas
Comentários
  • Além de mecanismo de mapeamento objeto/relacional, o Hibernate também pode trabalhar com um sistema de cache das informações do banco de dados, aumentando ainda mais a performance das aplicações. O esquema de cache do Hibernate é complexo e totalmente extensível, existindo diversas implementações possíveis, cada uma com suas próprias características. E junto com isso, ele também tem um gerenciador de versões próprio.
    Fazer cache de objetos pode aumentar a performance de sua aplicação, mas cuidado para não abusar muito, porque isto pode aumentar consideravelmente a quantidade de memória que sua aplicação está utilizando.

  • Podem ser feitos caches dos resultados das queries. No caso específico do "Query cache", isso só é útil se elas forem utilizadas com alta frequência e com os mesmos parâmetros.
    https://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch06.html#d0e2601


ID
362884
Banca
CESPE / CEBRASPE
Órgão
TRE-BA
Ano
2010
Provas
Disciplina
Programação
Assuntos

Quanto ao Hibernate, julgue o item abaixo.

O Hibernate, um framework para o mapeamento objeto- relacional, é escrito na linguagem Java e, por isso, somente pode ser executado no ambiente Java.

Alternativas
Comentários
  • Tem uma versão para .NET também - NHIBERNATE.
  • Questãozinha safada!

    Se a questão fosse:
    "O Hibernate, um framework para o mapeamento objeto-relacional, somente pode ser executado no ambiente Java".
    Concordo que estaria ERRADO, afinal existe o NHibernate, versão escrita em C#.

    Mas quando a questão diz: "escrito na linguagem Java", então só pode ser utilizada em ambiente Java.
  • concordo que a questao deveria ser anulada. Afinal hibernate != nhibernate.

    Quem estuda um edital que tem foco em JAVA não tem obrigacao de saber que existe solução para outra linguagem, ainda mais com nome diferente.
  • Não sei se essa foi a intenção da questão, mas se pode usar o Hibernate Java juntamente com qualquer linguagem que roda na JVM: Scala, JRuby...
  • Amigos, se roda sobre a JVM, lógicamente é ambiente Java. Assim, essa questão deveria ter seu gabarito alterado para errado.
  • Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net como o nome NHibernate. Ref. http://pt.wikipedia.org/wiki/Hibernate.
    Dessa forma, a questão está errada, já que o framework pode ser executado em ambiente .NET (com o NHibernate).
    Bons estudos!
  • A questão está errada, pois como ela mesma diz o hibernate tendo sido escrito em Java só pode ser executado sobre uma jvm. O nhibernate (que aliás não é o hibernate propriamente dito) deve ter sido reescrito em uma linguagem suportada pela plataforma .net. Esses 2 erros conceituais só evidenciam  despreparo teórico de nossos avaliadores.

  • A maquina virtual java, JVM, pode execultar codigos escritos em outros liguagem, como Scala, podendo-se usar um framework escrito em java em outro ambiente, ja que tudo é convertido para bytecode.


ID
456166
Banca
FCC
Órgão
TRT - 23ª REGIÃO (MT)
Ano
2011
Provas
Disciplina
Programação
Assuntos

Sobre as coleções do Hibernate, considere:

I. Quando um objeto é adicionado na coleção, o número da versão do proprietário da coleção é incrementado.
II. Quando um objeto é removido da coleção, o número da versão do proprietário da coleção é decrementado.

III. Se uma entidade é adicionada a uma coleção (uma associação um-para-muitos ou muitos-para-muitos), ela fará com que a entidade se torne persistente, por padrão.

IV. Se um objeto removido de uma coleção for uma instância de um tipo de valor, este objeto irá parar de ser persistente e seu estado será completamente removido do banco de dados.

Está correto o que consta em

Alternativas
Comentários
  • Segundo a documentação do Hibernate, no capítulo que trata sobre coleções:

    As coleções do Hibernate são consideradas uma parte lógica de suas próprias entidades, nunca das entidades contidas.

    - Quando removemos ou adicionamos um objeto da/na coleção, o número da versão do proprietário da coleção é incrementado.

    - Se um objeto removido de uma coleção for uma instância de um tipo de valor, este objeto irá parar de ser persistente e seu estado será completamente removido do banco de dados. Da mesma forma, ao adicionar uma instância de tipo de valor à coleção, causará ao estado uma persistência imediata.

    - Por outro lado, se uma entidade é removida de uma coleção (uma associação um-para-muitos ou muitos-para-muitos), ela não será deletada por padrão. Da mesma forma, ao adicionar uma entidade à coleção, não faz com que a entidade se torne persistente, por padrão.

    Portanto, apenas os itens 1 e 4 estão corretos.
  • tenso ein, quantas mil páginas não deve ter a documentação do hibernate, e isso é apenas um tópico do seu edital...tem que ter razoabilidade nas questões senão vira sorte, o conteúdo é infinito, tem que delimitar


ID
582682
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2011
Provas
Disciplina
Programação
Assuntos

Em sua essência, o Hibernate é um framework para

Alternativas
Comentários
  • O Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net como o nome NHibernate. Este 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 (veja Annotation
    (java)).

    Hibernate é um software livre de código aberto distribuído com a licença LGPL.


  • É um framework para mapeamento objeto-relacional (ORM) cujo objetivo é diminuir a complexidade entre programadores java que precisam trabalhar com banco de dados do modelo relacional.  

     

    Relação com JPA -

    A JPA-Java Persistence API é o padrão adotado pelo Java para soluções ORM (Objeto Mapeamento Relacional). A JPA define as regras ORM via anotações, mas por ser uma especificação ou padrão ela depende de um provider.  Nessa aplicação poderá ser utilizado o HIBERNATE como provider JPA.


ID
582685
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2011
Provas
Disciplina
Programação
Assuntos

Linguagem de queries, fornecida pelo Hibernate, que é similar em aparência ao SQL e que, no entanto, é orientada a objeto e compreende noções como herança, polimorfismo e associação. Trata-se de

Alternativas
Comentários
  • A HQL (Hibernate Query Language) é um dialeto SQL para o Hibernate. Ela é uma poderosa linguagem de consulta que se parece muito com a SQL, mas a HQL é totalmente orientada a objeto, incluindo os paradigmas de herança, polimorfismo e encapsulamento.
     
    No Hibernate, você pode escolher tanto usar a SQL quanto a HQL. Escolhendo a HQL, você poderá executar os pedidos SQL sobre as classes de persistência do Java ao invés de tabelas no banco de dados, aumentando, assim, a distância entre o desenvolvimento da regras de negócio e o banco de dados.
  • Hibernate Query Language (HQL)


ID
613150
Banca
CESPE / CEBRASPE
Órgão
BRB
Ano
2011
Provas
Disciplina
Programação
Assuntos

Acerca de mapeamento objeto-relacional, julgue os seguintes itens.

O mapeamento objeto-relacional é um mecanismo que utiliza a serialização de objeto simples para a persistência de dados em banco de dados relacional. Nesse tipo de mapeamento, a serialização de objetos é realizada pela decomposição de objetos em dados relacionais.

Alternativas
Comentários
  • Serialização simples é apenas a persistência de objetos em disco. Na serialização os objetos não são mapeadoas em tabelas.
  • Na verdade serialização não tem a ver com persistência! Serialização é o ato de transformar um objeto em string. E deserialização é o processo inverso, reverter uma string para objeto.
  • Somente complementando os comentários dos colegas abaixo:

    Existem várias formas de tornar os dados de uma aplicação persistentes. O mecanismo de serialização é um deles, porém não se propõe a persistir os dados em Banco de dados e sim em um arquivo.

    Vejamos as diversas formas de persistir dados:

    1. Gravá-los (serializá-los) em um arquivo com Java Serialization. 

    2. Convertê-los em XML usando ferramentas como JAXB. 

    3. Armazená-los em um banco de dados (várias formas). 

    4. Armazená-los em sistema de arquivos ou outro meio de armazenamento usando algoritmo próprio. 


    A questão misturou as formas 1 e 3, o que a tornou ERRADA.

    Espero ter ajudado!


  • Prezados,

    Nem todo mapeamento objeto-relacional é feito através de serialização. Não obstante, a serialização do objeto transforma ele, como um todo, numa espécie de string, então, a serialização por si só não garante a transformação do objeto ( e o valor de seus atributos ) em dados relacionais. 

    Portanto a questão está errada.


ID
616954
Banca
FCC
Órgão
MPE-SE
Ano
2010
Provas
Disciplina
Programação
Assuntos

No framework Hibernate os objetos que ainda não têm uma representação no banco de dados, ainda não estão sob o controle do framework e podem não ser mais referenciáveis a qualquer momento, como qualquer objeto normal em Java, são do tipo

Alternativas
Comentários
  • Transient


ID
622129
Banca
CESPE / CEBRASPE
Órgão
CBM-DF
Ano
2011
Provas
Disciplina
Programação
Assuntos

Com relação ao desenvolvimento web, julgue os itens subsequentes.

A principal característica do Hibernate é a transformação das tabelas de dados para classes em Java. Além disso, ele gera as chamadas SQL e libera o desenvolvedor do trabalho manual da conversão dos dados resultantes.

Alternativas
Comentários
  • Sua principal característica é a transformação das classes em Java para tabelas de dados (e dos tipos de dados Java para os da SQL). O Hibernate gera as chamadas SQL e libera o desenvolvedor do trabalho manual da conversão dos dados resultante, mantendo o programa portável para quaisquer bancos de dados SQL, porém causando um pequeno aumento no tempo de execução.

    Fonte: 

    http://pt.wikipedia.org/wiki/Hibernate

    Parece que o CESPE passou mesmo a adotar a fonte de questões que a FCC mais usa!

     

  • Essa característica do Hibernate não é unidirecional. Ele realiza o mapeamento objeto-relacional. Em suma, ele faz a intermediação entre classes java e tabelas de bancos de dados relacional.
    Acredito que o erro não esteja na troca de posição dos termos e sim ao afirmação que ele faz transformação, pois isso não ocorre. Uma classe não transforma em tabela, nem uma tabela se transforma em classe. O que ocorre é a mediação do hibernate entre esses dois componentes que não se entendem, realizando o mapeamento que sem seu uso é extremamente custoso para o desenvolvedor.
  • O mapeamento no Hibernate pode ser realizado em duas abordagens:
    Top-Down: A partir de modelos de classe gera-se o modelo de dados
    Bottom-Up: A partir do modelo de dados gera-se o modelo de classes (engenharia reversa)

    Acredito que a principal característica e facilidade seja a abordagem Top-Down, que é justamente a inversa do que foi apresentado na questão.
  • A questão foi tirada diretamente do site do hibernate:

    "Hibernate is a high-performance Object/Relational persistence and query service. The most flexible and powerful Object/Relational solution on the market,

    Hibernate takes care of the mapping from Java classes to database tables and from Java data types to SQL data types. It provides data query and retrieval facilities that significantly reduce development time. (grifo nosso)

    Hibernate’s design goal is to relieve the developer from 95% of common data persistence-related programming tasks by eliminating the need for manual, hand-crafted data processing using SQL and JDBC.  However, unlike many other persistence solutions, Hibernate does not hide the power of SQL from you and guarantees that your investment in relational technology and knowledge is as valid as always."

    Apesar da questão não citar o caminho inverso, isso não invalida a questão. O problema está com o termo mapping e transformação.

    Fonte:
    www.hibernate.org/about

    http://docs.jboss.org/hibernate/orm/3.6/reference/pt-BR/html/preface.html
  • O hibernante mapea das tabelas para classes em java e vice-versa.
  • Questão retirada do Wikipedia (http://pt.wikipedia.org/wiki/Hibernate):

    "Sua principal característica é a transformação das classes em Java para tabelas de dados. O Hibernate gera as chamadas SQL e libera o desenvolvedor do trabalho manual da conversão dos dados resultante."

    A pegadinha está na ordem da transformação.
  • é HQL e não SQL.

ID
639574
Banca
FCC
Órgão
TRT - 11ª Região (AM e RR)
Ano
2012
Provas
Disciplina
Programação
Assuntos

No Hibernate,

Alternativas
Comentários
  • Hibernate aceita consultas em HQL, Criteria queries, e SQL puro
  • Você também pode expressar consultas no dialeto SQL nativo de seu banco de dados. Isto é
    bastante útil para usar recursos específicos do banco de dados, assim como dicas de consultas
    ou a palavra chave em Oracle CONNECT. Ele também oferece um caminho de migração limpo de
    uma aplicação baseada em SQL/JDBC direta até o Hibernate.
    Ex:

    sess.createSQLQuery("SELECT * FROM CATS").list();
    sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();

    http://docs.jboss.org/hibernate/core/3.6/reference/pt-BR/pdf/hibernate_reference.pdf
  • sobre a letra A:
    Errado Session é um objeto de linha de execução única, compartilhado, que representa uma unidade de trabalho em particular com o banco de dados (sessão). Com ele é possível criar, remover, atualizar e recuperar objetos persistentes no banco de dados.

    alguém poderia me responder a respeito da letra B?


  • Com relação ao item B:
    Session, Transaction e Query são responsáveis pela execução de operações de criação, remoção, consulta e atualização no banco de dados.


    Fonte: http://waltercunha.com/blog/wp-content/uploads/2009/06/hibernate_resumo.pdf
  • Dando uma contribuição .....


    * Objetos Transientes: são objetos que suas instâncias não estão nem estiveram associados a algum contexto persistente. Eles são instanciados, utilizados e após a sua destruição não podem ser reconstruídos automaticamente;
    * Objetos Persistentes: são objetos que suas instâncias estão associadas a um contexto persistente, ou seja, tem uma identidade de banco de dados.
    * Objetos detached: são objetos que tiveram suas instâncias associadas a um contexto persistente, mas que por algum motivo deixaram de ser associadas, por exemplo, por fechamento de sessão, finalização de sessão. São objetos em um estado intermediário, nem são transientes nem persistentes.

    Fonte: http://futurepages.org/forum/viewtopic.php?f=4&t=11

    []'s
  • a)SessionFactory é um objeto de linha de execução única, compartilhado, que representa uma unidade de trabalho em particular com o banco de dados (sessão) Até aqui eu acho que está correta, mas na segunda parte Com a Session é que é possível criar, remover, atualizar e recuperar objetos persistentes no banco de dados e não com a SessionFactory

    b)Execução, operações de criação, remoção, consulta e atualização no banco de dados: Session , Transaction e Query;

    c)O uso da interface Transaction em aplicações que usam Hibernate é opcional.

    d) (CORRETA) Existem basicamente três formas de realizar consultas ao banco de dados usando o Hibernate. A primeira é usando a sua linguagem de consulta, a HQL (Hibernate Query Language), a segunda, usando a Criteria Query API e a terceira, usando SQL nativo.

    e)Objetos Transientes: são objetos que suas instâncias não estão nem estiveram associados a algum contexto persistente. Eles são instanciados, utilizados e após a sua destruição não podem ser reconstruídos automaticamente;

     

    fonte:

    http://futurepages.org/wiki/lib/exe/fetch.php?media=quickstart:hibernate_anotacoes.pdf

    http://www.devmedia.com.br/entendendo-hibernate-session/29215


ID
661753
Banca
FCC
Órgão
TRE-CE
Ano
2012
Provas
Disciplina
Programação
Assuntos

Com relação ao framework Hibernate é correto afirmar:

Alternativas
Comentários
  •  a) Permite fazer a persistência automatizada dos objetos em uma aplicação Java para as tabelas de um banco de dados relacional, utilizando metadados (descrição dos dados) que descrevem o mapeamento entre os objetos e o banco de dados. (correto) Faz parte da definição de Hibernate  b) É uma boa opção apenas para sistemas que fazem muito uso de stored procedures, triggers ou que implementam a maior parte da lógica da aplicação no banco de dados vai se beneficiar mais com o uso do Hibernate. (errado) Quanto menos componentes próprios de banco forem usados, mais fácil a utilização do modelo de dados com Hibernate  c) Permite enviar unidirecionalmente uma representação de dados de um banco de dados relacional para um modelo de objeto utilizando um esquema baseado exclusivamente em Hibernate Query Language (HQL). (errado) Pode usar HQL, Criteria queries e SQL nativo  d) A Java Persistence API (JPA) implementa o Hibernate, que é parte do Enterprise JavaBeans 4.0. (errado) Hibernate implementa a especificação JPA.  e) Em uma aplicação criada com Hibernate, para cada classe de persistência é necessário criar um arquivo de mapeamento XML que deve ser salvo obrigatoriamente com o nome da classe seguido pelo sufixo .map.xml. Alguém poderia fazer um comentário melhor sobre essa opção? 
  • Complementando, o sufixo correto é .hbm.xml
  • e) Em uma aplicação criada com Hibernate, para cada classe de persistência é necessário criar um arquivo de mapeamento XML que deve ser salvo obrigatoriamente com o nome da classe seguido pelo sufixo .map.xml.
    Atém do sufixo do arquivo, não é necessário criar esse mapeamento. Lembre-se que podemos realizar a configuração com o uso de Annotations.
  • Complementando a resposta do colega Jefferson, quando se usa annotations, os códigos xml dos mapeamentos são gerados automaticamente. Bons estudos!

  • a-

    Para limitações de mapeamento objeto relacional, surgiram frameworks como Hibernate, poupando de mapear as classes para tabelas manualmente.Oracle criou uma especificação para o mapeamento objeto relacional- JPA, api-padrão Java para a persistência do estado de objetos em bancos de dados relacionais. O JPA fornece interfaces e classes para aplicações Java, fazendo parte da especificação JEE desde a versão 5.0. A abordagem tradicional consistia em utilizar o JDBC para comunicação, através de suas interfaces implementadas pelos drivers JDBC específicos para cada banco. A abordagem do JPA implementa provedor JPA, que interage diretamente com o JDBC, estabelecendo comunicação com o banco de dados


ID
669610
Banca
CONSULPLAN
Órgão
TSE
Ano
2012
Provas
Disciplina
Programação
Assuntos

Por suas características, Hibernate 3.5 constitui uma ferramenta com a finalidade de realizar o seguinte tipo de mapeamento

Alternativas
Comentários
  • O Hibernate, assim como o TopLink, é uma implementação de JPA
  • O Hibernate é um framework para o mapeamentoobjeto-relacional escrito na linguagem Java, mas também é disponível em .Net com o nome NHibernate. Este programa 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) para estabelecer esta relação.
    Hibernate é um software livre de código aberto distribuído com a licença LGPL.

ID
669613
Banca
CONSULPLAN
Órgão
TSE
Ano
2012
Provas
Disciplina
Programação
Assuntos

No mapeamento hibernate, pode-se utilizar o recurso das collections, incluindo as indexadas. São exemplos de collections indexadas

Alternativas
Comentários
  • Além dos List e Maps, estão incluidos java.util.Collection (inclui Arrays) e Sets
  • Records e Bags não são indexadas restando apenas Lists, Maps e Arrays!


ID
695590
Banca
FCC
Órgão
TRF - 2ª REGIÃO
Ano
2012
Provas
Disciplina
Programação
Assuntos

Quando se cria uma aplicação Java utilizando um recurso de Mapeamento Objeto-Relacional como o Hibernate, o mapeamento entre classes e tabelas, propriedades e colunas, associações e chaves estrangeiras, tipos do Java e tipos do SQL, é feito através de metadados. Esses metadados normalmente podem ser colocados em arquivos XML ou diretamente nas classes, próximos da informação que eles descrevem. Quando são colocados nas classes, esses metadados são conhecidos como

Alternativas
Comentários

ID
762211
Banca
FCC
Órgão
TCE-AM
Ano
2012
Provas
Disciplina
Programação
Assuntos

Considere o excerto a seguir:

Em uma aplicação que utiliza Hibernate, uma I representa uma determinada configuração de repositório de dados (data-store) lógicos. A I I tem o mesmo papel em uma aplicação JPA, e configura-se uma II I com arquivos de configuração ou em código da aplicação assim como se configuraria uma IV . A configuração de uma V , junto com um conjunto de metadados de mapeamento (normalmente classes anotadas), é chamada de VI .

As lacunas I, II, III, IV, V e VI devem ser preenchidas, correta e respectivamente, por:

Alternativas
Comentários
  • A questão basicamente faz analogia entre SessionFactory e EntityManagerFactory
  • Assim fica mais fácil :
    Em uma aplicação que utiliza Hibernate, uma SessionFactory representa uma determinada configuração de repositório de dados (data-store) lógicos. A EntityManagerFactory tem o mesmo papel em uma aplicação JPA, e configura-se uma EntityManagerFactory com arquivos de configuração ou em código da aplicação assim como se configuraria uma SessionFactory . A configuração de uma EntityManagerFactory , junto com um conjunto de metadados de mapeamento (normalmente classes anotadas), é chamada de unidade de persistência .

ID
836506
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2012
Provas
Disciplina
Programação
Assuntos

Com relação ao desenvolvimento Java, julgue os itens a seguir.

Em uma associação muito-para-muitos, no Hibernate, ao se alterar um dado de um dos lados da associação, ambas as associações serão persistidas.

Alternativas
Comentários
  • Pelo que pude entender, numa associação bidirecional (no caso, muito-para-muitos), ambos os lados tem que ser notificados, quando de uma alteração.
  • Não é preciso persistir outras tabelas ao se modificar uma tabela em uma relação muito para muitos. Imagine o relacionamento Autor x Livro seja N:N. Ao mudarmos o nome de um livro na tabela livro não precisaremos persistir na tabela Autor, pois o id que identifica este atributo não mudou . 

ID
906346
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2013
Provas
Disciplina
Programação
Assuntos

Considere clientes um objeto List que contém um conjunto de registros retornados de uma tabela do banco de dados por meio da execução de uma query SQL em uma aplicação web desenvolvida com Java utilizando o Hibernate. Considere também a existência de uma classe de entidade chamada Cliente que faz o mapeamento objeto-relacional com a tabela cliente do banco de dados. Nessas condições, considere os fragmentos de código abaixo:

Exemplo 1:   for (int indice=0; indice<clientes.size();indice++) {  

Cliente cli = (Cliente) clientes.get(indice);  
out.println(cli.getNomCli());  

Exemplo 2:

Iterator it = clientes.iterator();
while (it.hasNext()) {
Cliente cli = (Cliente) it.next();
out.println(cli.getNomCli());
}

Exemplo 3:
for (Object objeto_cliente:clientes) {
Cliente cli = (Cliente) objeto_cliente;
out.println(cli.getNomCli());
}

É correto afirmar que:

Alternativas
Comentários
  • Alguem poderia explicar esse for aqui do exemplo 3 ?

    for (Object objeto_cliente:clientes)

    Não tá errado não esses dois pontos (":") e sem um critério p/ finalizar ? O correto não seria usar um foreach (Object objeto_cliente in clientes) ???


ID
943198
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2013
Provas
Disciplina
Programação
Assuntos

A respeito dos frameworks de desenvolvimento Java, julgue os itens subsecutivos.

O objeto Session Factory do Hibernate mantém o mapeamento objeto relacional na sessão.

Alternativas
Comentários
  • Certa questao!!


    A SessionFactory permite a aplicação criar sessões a partir de arquivos de configuração hibernate.cfg.xml
    Após definir questões transacionais (opcional) a aplicação pode usar objetos persistentes e a sessão hibernate para salvar dados no SGBD.:

    fonte: http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.htm
  • Objeto? SessionFactory é uma classe!

  • O correto não seria dizer que o SessionFactory "permite" manter o mapeamento na sessão? Tendo em vista que ele não armazena nada ele só cria uma Session?

  • Resumindo: Questão mal escrita.

  • A Session Factory do Hibernate mantém o mapeamento objeto relacional na sessão?

    Não esquente. A questão dá mesmo margem a dúvidas.

    A fabrica de sessões no Hibernate cria a Session que é o objeto que realmente faz a comunicação entre a aplicação e os objetos persistentes, usando uma conexão JDBC. A Factory é definida como uma coleção de mapeamentos objetos-relacionais existindo uma única instância dela para cada banco de dados a ser usado pela aplicação. Com esforço para entender o que o examinador disse podemos aceitar que a Session Factory a partir de sua coleção de mapeamentos O/R cria e mantém uma Session que salva e recupera os objetos persistentes sempre que uma operação sobre o BD é executada.


ID
943204
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2013
Provas
Disciplina
Programação
Assuntos

A respeito dos frameworks de desenvolvimento Java, julgue os itens subsecutivos.

interface Criteria do Hibernate é utilizada para realizar consultas ao banco de dados.



Alternativas
Comentários
  • Quando utilizamos o Hibernate para realizar consultas no banco de dados, temos a oportunidade de trabalhar com SQL, com HQL e também com Criteria Query API. A API (Application Programming Interface) Criteria do Hibernate fornece uma maneira elegante de construção de query din mica para consultas no banco de dados. A API é uma alternativa as consultas HQL (Hibernate Query Language) e também ao SQL tradicional.

    fonte: http://www.mballem.com/post/consultas-com-hibernate-e-a-api-criteria--parte-i
  • fazer query usando objetos

ID
943207
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2013
Provas
Disciplina
Programação
Assuntos

A respeito dos frameworks de desenvolvimento Java, julgue os itens subsecutivos.

No Hibernate, caso o nome da classe seja diferente do nome da tabela mapeada, é necessário informar, na anotação @Table, o nome da tabela, por meio do atributo name.

Alternativas
Comentários
  • Questão correta. Vale lembrar que no mapeamento da classe pode-se, ainda, informar na anotação @Table o esquema do banco de dados em que a tabela pertence, utilizando o atributo schema. Ex.: @Table(name="Nome_da_Tabela", schema="Nome_do_Esquema")
  • Só tomem cuidado:

    Considerando que hibernate é uma implementação de JPA, a annotação @Entity(name="NomeTabela") também é válida, portanto a anotação @Table não é necessária

    @Table vs @Entity

    @Table is optional
    @Entity is needed for annotating a POJO class as an entity, but the name attribute is not mandatory.

    ----------------------------------------------------------------------
    If you have a class
    @Entity
    class MyEntity {}
    A table with name "MyEntity" will be created and the Entity name will be MyEntity.

    ----------------------------------------------------------------------

    @Entity(name="NewName")

    class MyEntity {}

    A table with name "NewName" will be created and the Entity name will be MyEntity.

    if you have a class

    ----------------------------------------------------------------------

    @Entity(name="MyEntityName")
    @Table(name="MyEntityTableName")
    class MyEntity {}

    then a table with name MyEntityTableName is created and the entity name is MyEntityName.

    http://stackoverflow.com/questions/7259273/whats-the-difference-between-the-name-argument-in-entity-and-table-when-using
    https://www.quora.com/What-is-the-difference-between-Entity-name-Emp-and-Table-name-Emp-in-Hibernate


ID
946942
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2013
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, acerca dos frameworks Hibernate, JSF e Struts.

Em Hibernate, a configuração de conexões de banco de dados deve ser feita somente por meio do uso de arquivo de propriedade.

Alternativas
Comentários
  • Errada...


    Rola também no
    hibernate-cfg.xml
  • ..... somente por meio do uso de arquivo de propriedade
    O Erro esta no Somente.
  • Alem de utilizar arquivos de propriedades, hibernate-cfg.xml, pode-se configura-la programaticamente. Só pensar que o arquivo de configuração irá passar uns valores para classes java. Essas classes podem ser setadas manualmente.
  • Há três formas de realizar a conexão com banco de dados:
    1. Arquivos de propriedades
    - Arquivo hibernate.properties
    2. Arquivo XML
    - Arquivo hibernate.cfg.xml
    3. Programaticamente
    - Utilização da classe Configuration (org.hibernate.cfg.Configuration)


ID
1028740
Banca
FEPESE
Órgão
JUCESC
Ano
2013
Provas
Disciplina
Programação
Assuntos

Em relação à JPA e Hibernate, considere as seguintes afrmativas.

1. JPA Especifca uma JSR

2. Hibernate Especifca uma JSR

3. Hibernate cuida da camada de persistência enquanto JPA da camada de transação

4. Hibernate é uma implementações de JSR

5. JPA é uma Implementação de JSR .

Assinale a alternativa que indica todas as afrmativas corretas.

Alternativas
Comentários
  • JSR - Java Specification Requests - São especificações JAVA

    JPA especifica a JSR 338

    fonte: https://www.jcp.org/en/jsr/detail?id=338


    Hibernate implementa um JSR, a 303 - Bean Validation API

    fonte:http://www.devmedia.com.br/conhecendo-o-hibernate-validator-java-magazine-83/18018


    Quanto à Terceira alternativa, quem cuida de transações é o EJB. JPA só faz a persistência dos dados.

  • JPA é uma especificação de outra????

  • (1) Quando se cria uma especificação, dá-se um Número de JSR (Ex: JPA é JSR 338; JTA é JSR 907; JMS é JSR 914; JSF é JSR 314, etc), portanto JPA especifica, sim, uma JSR;

    (2) Não, Hibernate implementa uma JSR;

    (3) Não, JPA também cuida da Camada de Persistência;

    (4) Perfeito, é uma implementação de JSR;

    (5) Não, JPA é uma especificação de JSR. 

    Estratégia Concursos.
     

  • Sabendo que o item 3 é falso já resolvia a questão, a banca deu mole.

  • Ainda bem q sabendo só a 3) da pra acertar pq eu não sei nem oq diabos é JSR


ID
1028779
Banca
FEPESE
Órgão
JUCESC
Ano
2013
Provas
Disciplina
Programação
Assuntos

Assinale a alternativa correta com relação ao atributo lazy.

Alternativas
Comentários
  • A questão aborda sobre o atributo "fetch" a ser usado nos mapeamento de relacionamentos, definidos pela especificação JPA. Esse atributo "fetch" pode assumir os valores "eager" e "lazy". Vamos as definições:

    fetch: é usado para definir como as entidades são carregadas no banco de dados. Que podem ser:

    Eager (ansioso): ao carregar uma entidade, os objetos relacionados a essa entidade também são carregados. É a forma default para os relacionamentos one-to-one e many-to-one (veja que o que determina é o one do final). Isso porque, em regra, esses relacionametos não trazem muitos dados de uma única vez!

    Lazy (preguiçoso): ao carregar uma entidade, os objetos relacionados a essa entidade não são carregados. É a forma default para os relacionamentos many-to-many e one-to-many (veja que o que determina é o many do final). Isso porque, em regra, esses relacionametos trazem muitos dados de uma única vez!

     Então, a letra "B" está correta, pois realmente a forma lazy otimiza a performance visto que somente os dados necessários naquele momento são carregados pelos objetos definidos em JPA (ou no Hibernate, caso estejamos utilizando essa implementação/Framework).

    Espero ter ajudado!


ID
1028785
Banca
FEPESE
Órgão
JUCESC
Ano
2013
Provas
Disciplina
Programação
Assuntos

Assinale a alternativa que indica a palavra-chave empregada em conjunto com fetch que defne sua forma de funcionamento de forma a ignorar a estratégia defnida de lazy do Hibernate no mapping document deste..

Alternativas
Comentários
  • Alternativa correta: A - JOIN. Vejamos o que diz o manual completo do Hibernate (pags 47-47):

    "3.4.2. Busca por união externa (Outer Join Fetching)

    Se seu banco de dados suporta união externa no estilo ANSI, Oracle ou Sybase, a outer join fetching freqüentemente aumentará o desempenho limitando o número de chamadas (round trips) para e a partir do banco de dados. No entanto, isto ao custo de possivelmente mais trabalho Fluxos Binários (Binary Streams) desempenhado pelo próprio banco de dados. A busca por união externa (outer join fetching) permite um gráfico completo de objetos conectados por associações muitos-para-um, um paramuitos, muitos-para-muitos e um-para-um para serem recuperadas em uma simples instrução SQL SELECT.

    A busca por união externa pode ser desabilitada globalmente configurando a propriedade hibernate.max_fetch_depth para 0. Um valor 1 ou maior habilita a busca por união externa para associações um-para-um e muitos-para-um, cujos quais têm sido mapeados com fetch="join"."

    Ou seja, quanto usa-se o join em conjunto com o fetch em selects utilizando o Hibernate, garante-se que a estrutura completa de relacionamentos seja carrega em sua memória, de forma a ignorar a estratégia lazy (como diz a questão).

    Espero te ajudado!



ID
1028803
Banca
FEPESE
Órgão
JUCESC
Ano
2013
Provas
Disciplina
Programação
Assuntos

O hibernate pode utilizar o mapping document para mapear metadados. Que outra forma pode ser empregada para mapear metadados em hibernate?

Alternativas
Comentários
  • Em JPA, há duas formas de mapear classes de negócio a entidades de um banco de dados: 

    XML; 

    Anotações; 

    Como Hibernate é uma implementação do JPA, tem-se essas duas opções. O que leva a alternativa "E" como a correta.

    Bons estudos!

  • e-

    O JPA faz persistência do estado de qualquer classe Java pelas anotações obrigatórias. É recomendado classe seguir especificações JavaBeans e  tenha tabela associada. Se a tabela não existir, o JPA a cria de acordo o mapeado das classes. A especificação JPA é definir campo id para chaves primárias em tabelas. Os tipos de dados são convertidos automaticamente, de acordo com o provedor JPA e o banco de dados armazenando os objetos. Um dos princípios do JPA é o da simplicidade. O conceito Convention Over Configuration (Coc) dita configuração mínima, pois o resto o JPA assume valores default. As únicas anotações obrigatórias são @Entity e @Id.

     

    O JEE faz o deployment em XML descritor opcional porque permite possibilita usar annotations, informação direta no codigo. Annotations especifcam serviços do servidor. O conceito de annotations se relaciona ao contexts and independence injection porque permite ao objeto solicitar um serviço sem se envolver nos detalhes de como ele é fornecido ou obtido.


ID
1029826
Banca
CESPE / CEBRASPE
Órgão
TCE-RO
Ano
2013
Provas
Disciplina
Programação
Assuntos

Julgue os itens subsequentes com relação a linguagens SQL e a mecanismos de persistência.

Para ajustar o comportamento do Hibernate, pode ser utilizada a propriedade denominada hibernate.xml2ddl.auto, que executa a linguagem de manipulação de dados e pode assumir os valores update-valid, create-update ou create-drop.

Alternativas
Comentários
  • hibernate.hbm2ddl.auto Automatically validates or exports schema DDL (Linguagem de Definição de Dados) to the database when the SessionFactory is created. 
    "hibernate.hbm2dll.auto automaticamente valida ou exporta esquemas de Linguagem de Definição de Dados quando a Fabrica de sessão e criada."

    O erro da questão esta em afirmar que o hibernate.xml2ddl.auto executa a DML ( Linguagem de Manipulação de Dados).

    fonte: 
    http://stackoverflow.com/questions/438146/hibernate-hbm2ddl-auto-possible-values-and-what-they-do
  • Não concordo com o comentário do Marcos.


    Em minha opinião o erro está no valores válidos para a opção hbm2.ddl.auto, que podem ser:

    1 - validate - valida se o mapeamento O.O está consonância com o modelo de dados.

    2 - create-drop - dropa o banco de dados após a SessionFactory ser fechada.

    3 - create - cria as tabelas após criar uma SessionFactory

    4 - update - sincroniza e atualiza o banco de dados de acordo com o mapeamento O.O

  • Além dos valores válidos a propriedade não é denominada hibernate.xml2ddl.auto e sim hibernate.hbm2ddl.auto

  • Levando em consideração os comentários dos colegas, segue ajuste da questão:

     

    Para ajustar o comportamento do Hibernate, pode ser utilizada a propriedade denominada hibernate.xml2ddl.auto (hibernate.hbm2ddl.auto), que executa a linguagem de manipulação (DEFINIÇÃO) de dados e pode assumir os valores update-valid (update), create-update (create) ou create-drop (como também o validate → valor omitido).


ID
1042630
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2013
Provas
Disciplina
Programação
Assuntos

Acerca da metodologia TDD (test driven development) e do Hibernate, julgue os seguintes itens.

O Hibernate sempre usa a estratégia de busca preguiçosa para coleções que precisará buscar no banco de dados inteiro da memória em cada transação, ou seja, são executas consultas para cada entidade ou coleção associada ao mesmo comando SELECT.

Alternativas
Comentários
  • Sempre usa não
    é o default

  • O famoso "lazing load" do Hibernate, mas é configurável e pode-se optar por não utilizar isso.

  • O que a torna errada foi dizer que os dados são buscados no banco em cada transação. Essa é a estratégia EAGER. No LAZY, os dados são trazidos sob demada, apenas quando o método get é executado. Esta certo ao dizer "O Hibernate sempre usa a estratégia de busca preguiçosa", pois em relaconamentos @OneToMany, @OneToOne o default é a estratégia LAZY.

  • "Sempre" é sempre uma palavra perigosa =)


ID
1099228
Banca
COPEVE-UFAL
Órgão
ALGÁS
Ano
2012
Provas
Disciplina
Programação
Assuntos

Dadas as seguintes afirmações,

I. Na arquitetura do JDBC, a diferença entre os tipos Statement e PreparedStatement é o fato do PreparedStatement manter os dados criptografados durante o tráfego entre o cliente e o servidor do SGBD.

II. Um software que utiliza o framework Hibernate, necessariamente não utiliza JDBC.

III. O framework Hibernate permite a implementação de transações na camada de persistência (aplicação), mesmo que o SGBD utilizado não implemente esse conceito.

IV. O framework Hibernate é responsável por realizar o mapeamento objeto-relacional, mas possui a restrição de só aceitar chaves primárias compostas em relacionamentos, não em entidades.
verifica-se que está(ão) correta(s)

Alternativas
Comentários
  • a IV está mesmo certa? Procurei e não achei fundamentação... =/

  • Gabarito: E

  • Também estou em dúvida quanto esse item IV. Se alguém poder ajudar agradeço.

  • eeeeeeeeeeeeita, e o EmbeddedId e IdClass? a IV é falsa


ID
1120903
Banca
CESPE / CEBRASPE
Órgão
TRT - 17ª Região (ES)
Ano
2013
Provas
Disciplina
Programação
Assuntos

Acerca dos conceitos de frameworks, ExtJS, Hibernate, Spring e Struts, julgue os itens subsequentes.

A opção hbm2ddl.auto no arquivo hibernate.cfg.xml habilita a geração automática de esquemas da base de dados diretamente na base de dados. Essa opção pode ser naturalmente desligada apenas por meio da remoção da opção de configuração.

Alternativas
Comentários
  • hibernate.hbm2ddl.auto: Automatically validates or exports schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.

    e.g. validate | update | create | create-drop 

    -> https://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/session-configuration.html

  • marquei como errada pois achava que o arquivo fica em persistence.xml

  • copiaram daqui rs

    https://stackoverflow.com/questions/3179765/how-to-turn-off-hbm2ddl


ID
1151275
Banca
INSTITUTO AOCP
Órgão
Colégio Pedro II
Ano
2013
Provas
Disciplina
Programação
Assuntos

O Hibernete é um dos frameworks mais conhecidos na atualidade por desenvolvedores JAVA, proporcionando grande vantagem e agilidade à produção de sistemas. Dentre as suas funcionalidades, qual é a sua principal função?

Alternativas
Comentários
  • Algumas soluções de mercado facilitam essa conversão, dentre estas o Hibernate. O Hibernate hoje é o framework Java para mapeamento objeto relacional mais conhecido no mercado. Sua principal função é abstrair o mapeamento, economizando esforço e preocupações concernentes a tal tarefa.


ID
1176001
Banca
CESPE / CEBRASPE
Órgão
TC-DF
Ano
2014
Provas
Disciplina
Programação
Assuntos

Acerca dos conceitos de desenvolvimento em Java e seus frameworks, julgue os itens a seguir.

O comando abaixo permite recuperar informação HQL (Hibernate Query Language), linguagem de consulta do Hibernate que permite a consulta e recuperação de informação.

retrieve (a=count(y.i by y.d where y.str = "ii*" or y.str = "foo"),b=max(count(y.i by y.d)))

Alternativas
Comentários
  • nao existe esse retrieve na hql

  • O examinador queria saber quem já viu a cara de um HQL, que nada tem a ver com o colocado pela questão.
    Olhemos a cara de um:
    Query query = session.createQuery("from Venda where vendaid = :id ");
    query.setParameter("id", "123");
    List list = query.list();Leia mais em: Exemplos práticos de como utilizar HQL http://www.devmedia.com.br/exemplos-praticos-de-como-utilizar-hql/28582#ixzz3baXDhGf1

  • Não existe nada disso ai no HQL... Essa escrita dos moradores de Plutão

  • HQL - Hibernate Query Language é um mecanismo do Hibernate para definir instruções SQL em tempo de execução. O HQL pode ser visto como uma variação orientada a objetos do SQL

    Exemplo de HQL:

    Query query = session.createQuery("from Book");

    List books = query.list();


ID
1202893
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2013
Provas
Disciplina
Programação
Assuntos

Utilizando-se o Hibernate é possível incluir na classe de entidade do banco de dados um conjunto de anotações para fazer o mapeamento dos objetos da classe para uma tabela específica do banco de dados relacional. Algumas destas anotações são destinadas a fazer o mapeamento de atributos da classe para campos da tabela.

As anotações para indicar que um atributo da classe refere-se a um campo da tabela que é primary key e not null são, respectivamente,

Alternativas
Comentários
  • Por padrão, a anotação @Id determinará automaticamente a estratégia de geração da chave primária mais apropriada, mas podemos sobrescrever isto aplicando a anotação @GeneratedValue. Esta anotação exige um par de atributos: strategy e generator. O atributo strategy deve ser um valor da enumeração javax.persistence.GeneratorType. Se não especificarmos o tipo do gerador, o default será AUTO. Existem quatro diferentes tipo de geradores de chave-primária no GeneratorType, são eles:

    >AUTO, onde o Hibernate decide o tipo do gerador a usar, baseado no suporte da base de dados para geração de chave-primárias;
    >IDENTITY, onde a base de dados é responsável por determinar a próxima chave-primária;
    >SEQUENCE, onde algumas bases de dados suportam um tipo de coluna SEQUENCE;
    >TABLE, na qual este tipo mantém uma tabela separada com os valores das chaves primárias.
    >>>A anotação @Basic requer dois atributos opcionais. O primeiro atributo é o optional e requer um valor boleano, o padrão é true. Se esse valor for setado para false tem-se que a coluna será do tipo NOT NULL quando criarmos um esquema. O segundo atributo é o fetch que tem como valor um membro de uma enumeração. Por default o valor é EAGER, mas também podemos setar para LAZY permitindo carregar o valor apenas quando acessarmos ele. O uso de LAZY é mais indicado quando um grande objeto serializável é mapeado como um tipo básico e o seu tempo de recuperação é significante.

    Exemplo:
    @Basic 
    @Column(nullable=false, length=100) 
    String tituloMensagem;
     @Basic 
    @Column(nullable=false, length=5000) 
    String textoMensagem;


ID
1204759
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2013
Provas
Disciplina
Programação
Assuntos

Recentemente foi aprovado o desenvolvimento do seguinte projeto no Tribunal Regional do Trabalho da 15ª Região:

O projeto é uma aplicação web simples, que implementa as operações básicas de um cadastro e segue um modelo de implementação orientada a objetos na plataforma Java EE. O MySQL foi o banco de dados escolhido para persistir as informações do cadastro. O projeto utilizará os seguintes frameworks Java:

O ... I ... é uma tecnologia para desenvolvimento de soluções web especificada pela plataforma Java EE. O objetivo desse framework é estipular um padrão para soluções web corporativas em Java. O Primefaces é uma extensão deste framework e disponibiliza uma série de componentes visuais predefinidos. Trata-se de uma tecnologia open source cujo objetivo é aumentar a produtividade durante o desenvolvimento, com foco em qualidade e eficiência.

O ... II ... é um modelo de componentes, especificado pela plataforma Java EE, elaborado para resolver problemas e desafios complexos de softwares corporativos. São componentes que atuam na camada servidor, classificados como componentes de negócio. Podem ser utilizados em diferentes situações como desenvolvimento distribuído, integração/conectividade com legado, processamento assíncrono baseado Fila / Mensagens, controle transacional e outros. Este componente é responsável pelas regras de negócio, ou seja, a persistência e o controle transacional.

A JPA- Java Persistence API é o padrão adotado pelo Java para soluções ORM (Objeto Mapeamento Relacional). A JPA define as regras ORM via anotações, mas por ser uma especificação ou padrão ela depende de um provider. Nessa aplicação poderá ser utilizado o ... III ... como o provider JPA.

Os frameworks I, II e III acima que serão utilizados no projeto são, respectivamente:

Alternativas
Comentários
  • JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications.[1] It was formalized as a standard through the Java Community Process and is part of the Java Platform, Enterprise Edition.

    Enterprise JavaBeans (EJB) is a managed, server-side component architecture for modular construction of enterprise applications.

    Hibernate ORM (Hibernate in short) is an object-relational mapping library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. Hibernate solves object-relational impedance mismatchproblems by replacing direct persistence-related database accesses with high-level object handling functions.

  • Primefaces não é uma extensão desse framework. Ela é uma implementação de biblioteca de componentes JSF.

  • começa de traz pra frente cada alternativa que fica mais facil

  • Questão para não zerar a prova. ¬¬

  • CAIA NA MINHA PROVA <3

  • b-

    O Java Server Faces (JSF) é o framework padrão Java para aplicações web com JEE. define e implementa componentes visuais para WEB, com MVC (model-view-controller): divisão das responsabilidades de uma aplicação em três camadas distintas:


    1. View: renderização da interface gráfica
    2. Controller: receber e tratar os eventos da View.
    3. Model: lógica de negócios.


ID
1208191
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Programação
Assuntos

Acerca de sistemas transacionais e de arquitetura Java EE 7, julgue os itens subsequentes.

O Hibernate é instalado automaticamente na arquitetura Java EE 7, quando escolhido o recurso JDBC. O Hibernate passou a ser utilizado como solução padrão para mapeamento objeto-relacional nessa versão de arquitetura, porque a JPA (Java Persistence API), não é mais suportada para realizar tal mapeamento, tendo sido marcada como deprecated na versão Java EE 5.

Alternativas
Comentários
  • JPA não foi marcado como deprecated na versão JEE 5. Até hoje na versão atual, JEE 7, ele ainda existe em sua versão 2.1.

    Aproveitando para citar as especificações mais cobradas na atual versão JEE 7: JSF 2.2, EJB 3.2 e JPA 2.1. 

  • Hibernate é instalado automaticamente na arquitetura Java EE 7 ?

  • Não faz sentido essa questão, pois o Hibernate implementa JPA.

  • Essa parte está errada, nem precisei ler o resto:
    O Hibernate é instalado automaticamente na arquitetura Java EE 7, quando escolhido o recurso JDBC.

  • jpa -> especificação

    hibernate -> implementação JPA

  • depende de qual server de implementação vc está usando

    se for wiildfly o padre é hibernate mesmo

    mas questão errada

    nao da pra afirma isso pra todo server que implementa JavaEE 7

  • RESOLUÇÃO:

    Umas das coisas que na assertiva está errada é, o Hibernate não é solução padrão para o mapeamento objeto-relacional.

    Resposta: Errado


ID
1215238
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Programação
Assuntos

Com relação ao Hibernate, julgue os itens subsecutivos.

Um arquivo de mapeamento (mapping file) informa ao Hibernate que tabela do banco de dados deverá ser acessada e quais as colunas da tabela deverão ser usadas por ele.

Alternativas
Comentários
  • Esse tipo é a moda retrô:

    https://www.tutorialspoint.com/hibernate/hibernate_mapping_files.htm

     

    Hoje tudo é via @annotation

     

    Go @head!!


ID
1215241
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Programação
Assuntos

Com relação ao Hibernate, julgue os itens subsecutivos.

Um dialeto encapsula todas as diferenças da forma com que o Hibernate se comunica com um banco de dados em particular para executar alguma tarefa, como recuperar um valor de uma sequência ou estruturar uma consulta SQL. A propriedade hibernate.dialect.property com a subclasse org.hibernate.dialect.Dialect define o dialeto para o banco de dados que se deseja utilizar.

Alternativas
Comentários
  • O Hibernate abstrai o seu código SQL, toda a camada JDBC e o SQL será gerado em tempo de execução. Mais que isso, ele vai gerar o SQL que serve para um determinado banco de dados, já que cada banco fala um "dialeto" diferente dessa linguagem. Assim há também a possibilidade de trocar de banco de dados sem ter de alterar código Java, já que isso fica de responsabilidade da ferramenta. Ao configurar o hibernate precisamos dizer qual dialeto de SQL deverá ser usado no momento que as queries são geradas, por exemplo: Oracle, 

    MySql, DB2, SQLServer, entre outros.

    A propriedade tem a seguinte configuração:

    <!--  propriedades do hibernate -->

    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />



ID
1215265
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Programação
Assuntos

Julgue o item abaixo, relativo à JPA (Java Persistence API).

A JPA, que foi criada como alternativa para o Hibernate para conexão com os sistemas gerenciadores de banco de dados, está nativa no Java SE a partir da versão 1.3.

Alternativas
Comentários
  • JPA é uma especificação Java 2 adotada pelo framework Hibernate!

  • É nativa no Java SE ou não?

  • Though JPA is a part of EJB 3 Specification it can be used in Java SE applications, outside of the Java EE environment.

  • Para complementar, de fato Hibernate tem relação com JPA, mas a nível de implementação, ou seja, o Hibernate implementa JPA. O detalhe é que você pode usar Hibernate sem JPA.

  • JPA = Especificação, 

    Hibernate = implementação, 
    EclipseLink = implementação. 
    O hibernate pode implementar  a especificação JPA.
  • e-

    A JPA, que foi criada como alternativa para o Hibernate........

    framework - hibernate

    especificação- JPA

     

    A abordagem tradicional era JDBC através de suas interfaces implementadas por seus drivers específicos para cada banco. JPA é semelhante, pois também tem classes e interfaces implementadas por provedor JPA, que interage diretamente com o JDBC, estabelecendo comunicação com o banco de dados. vantagem:nenhum código SQL fica na aplicação Java

  • Vamos lá:

     - O java errou muito quando reunia um grupo de pessoas e lancava uma especificacao para o mercado atender. Vide EJB 2x, simplesmente um fiasco.

    - O java aprendeu e foi olhando as melhores solucoes do mercado e fez uma especificacao baseado nessas solucoes. Por exemplo: do hibernate (que foi um sucesso) veio a especificacao JPA. O hibernate, então, adaptou sua estrutura pra seguir essa especificacao. Outro exemplo que segue a especificacao: EclipseLink.

    - Pra fugir um pouco de JPA: o EJB 3 foi baseado em algumas características do Spring (canivete suico).

    - Como o java viu que seria interessante o uso de JPA para aplicacoes desktop, incluiu isso também na versão JavaSE.

     

    A questão erra ao falar que a JPA está na versao 1.3.

  • JEE não JSE


ID
1306492
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2014
Provas
Disciplina
Programação
Assuntos

No que se refere à arquitetura e à programação Java, julgue o item que se segue.


O Hibernate permite operações de banco de dados relacionais em ambiente Java e a persistência transparente de classes POJO (plain old Java objects), que devem ter um construtor com apenas um argumento, para referenciar o servidor SQL no qual os dados manipulados pela classe serão persistidos.

Alternativas
Comentários
  • construtores sem argumento

  • Implement a no-argument constructor
    http://stackoverflow.com/questions/2935826/why-does-hibernate-require-no-argument-constructor

  • Errado!

    "POJO significa Plain Old Java Objects, a tradução mais próxima para o português seria: O Simples e Velho Objeto Java. Seu objetivo é criar classes o mais simples possível, seguindo um padrão já definido, que tornam suas instâncias "genéricas" para todo o programa e diversos FrameWorks que se beneficiam desta técnica.

    Uma classe POJO segue definições rígidas de estrutura:

    --> Construtor sem argumentos;

    --> Atributos declarados como private;

    --> Métodos getters e setters, para cada atributo, declarados como public;"


    http://adrielcafe.com/cafelog/hibernate/45-introducao-ao-hibernate

  • A questão versa sobre aspectos inerentes ao Hibernate, framework para mapeamento objeto/relacional na linguagem Java.

    Conforme documentação oficial do Hibernate versão 5.5, o referido framework funciona melhor com classes persistentes que seguem o padrão POJO, respeitando, basicamente, algumas regras, dentre as quais [1]:

    - Obrigatoriamente, a classe deve possuir um construtor SEM ARGUMENTOS.

    Logo, questão INCORRETA.


    Referência:

    [1] JBOSS. Hibernate ORM 5.5.0. Final User Guide. Disponível em: site oficial do framework. Acesso em: 9/6/2021.


    Gabarito do Professor: ERRADO.

ID
1489402
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2014
Provas
Disciplina
Programação
Assuntos

Muitos sistemas coorporativos atuais são desenvolvidos utilizando linguagem de programação orientada a objetos e banco de dados relacional. Para simplificar a utilização em conjunto desses dois diferentes paradigmas, pode ser aplicado um framework de mapeamento objeto relacional, como por exemplo:

Alternativas
Comentários
  • Struts => Struts é um framework de desenvolvimento da camada controladora, numa estrutura seguindo o padrão Model 2 (uma variante do MVC oficializada pela Sun), de aplicações web (principalmente) construído em Java para ser utilizado em um container web em um servidor J2EE.1 Struts fornece o controlador/controller (um servlet conhecido como ActionServlet) e facilita a escrita de moldes padronizados para a camada de visualização/view (normalmente em JSP, mas XML/XSLT e Velocity também são suportados). O programador de aplicativo da web é responsável por escrever o código do modelo/model, e por criar um arquivo de configuração centralizador (struts-config.XML) que une modelo, visualização e controlador.
    Hibernate => O Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net como o nome NHibernate. Este 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 (veja Annotation (java)). Hibernate é um software livre de código aberto distribuído com a licença LGPL.
    Spring => O Spring é um framework open source para a plataforma Java criado por Rod Johnson e descrito em seu livro "Expert One-on-One: JEE Design e Development". Trata-se de um framework não intrusivo, baseado nos padrões de projeto inversão de controle (IoC) e injeção de dependência.
    Java Server Faces (JSF) => JavaServer Faces (JSF) é um framework MVC baseado em Java para a construção de interfaces de usuário baseadas em componentes para aplicações web. Possui um modelo de programação dirigido a eventos, abstraindo os detalhes da manipulação dos eventos e organização dos componentes, permitindo que o programador se concentre na lógica da aplicação Foi formalizada como um padrão através do Java Community Process e faz parte da Java Platform, Enterprise Edition. JSF 2 utiliza Facelets como seu sistema de template padrão. Outras tecnologias da camada de visão, como XUL também podem ser empregadas. Em contraste, JSF 1.x utiliza JavaServer Pages (JSP) como seu sistema de template padrão.
    JQuery => jQuery é uma biblioteca JavaScript cross-browser desenvolvida para simplificar os scripts client side que interagem com o HTML.1 Ela foi lançada em dezembro de 2006 no BarCamp de Nova York por John Resig. Usada por cerca de 77% dos 10 mil sites mais visitados do mundo, jQuery é a mais popular das bibliotecas JavaScript.
    Fontes: Wikipedia.
    Bons estudos!


ID
1489405
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2014
Provas
Disciplina
Programação
Assuntos

Em uma query escrita em HQL(Hibernate Query Language), são case-sensitive:

Alternativas
Comentários
  • Ao trabalhar com HQL, o nome da classe e os atributos são case-sensitive. Veja no exemplo abaixo:

    String hql = "from NomeDaClasse.nomeDoAtributo."; ou

    String hql = "FROM NomeDaClasse.nomeDoAtributo.";

    {...resto do codigo}

    O mecanismo interno do Hibernate cria dinamicamente o SQL utilizando esses parâmetros. Se o programador não atentar a esse fato, a JVM dá erro em tempo de execução.


ID
1489408
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2014
Provas
Disciplina
Programação
Assuntos

Durante um mapeamento utilizando Hibernate 4.1, além dos valores true e false, pode ser escolhido um terceiro valor diferente para o elemento lazy de uma tag map:

Alternativas
Comentários
  • na tag map,  o elemento lazy pode ser:  true | extra | false

    https://docs.jboss.org/hibernate/orm/3.6/reference/pt-BR/html_single/

  • lazy="true | extra | false"

    Propriedade lazy (opcional - padrão para true):

    - pode ser utilizado para desabilitar a busca lazy e especificar que a associação é sempre buscada antecipadamente

    - ou para habilitar busca "extra-lazy" onde a maioria das operações não inicializa a coleção (apropriado para coleções bem grandes).

     

    fonte: https://docs.jboss.org/hibernate/orm/3.6/reference/pt-BR/html/collections.html#collections-mapping

  • As anotações de associação usam fetch para configurar recuperação dos objetos associados. 2 fetches possíveis:
    1) FetchType.EAGER: O atributo ou coleção carregado com classe principal. pode ser false, true, extra
    2) FetchType.LAZY: O atributo ou coleção de atributos é carregado somente quando acessado explicitamente pelo get() na entidade principal.


ID
1700077
Banca
FCC
Órgão
TRT - 4ª REGIÃO (RS)
Ano
2015
Provas
Disciplina
Programação
Assuntos

Uma aplicação que trabalha com Hibernate e EJB possui uma classe POJO − Plain Old Java Object utilizada no mapeamento objeto-relacional com uma tabela do banco de dados. Nessa classe, há um atributo calculado chamado valorTotalPedido que, para ser utilizado apenas em tempo de execução e descartado após finalizar o seu serviço temporário, deverá ser anotado com

Alternativas
Comentários
  • Evitando a Persistência com @Transient


    Existem algumas situações em que um atributo é utilizado apenas como sendo um auxiliar. Por exemplo, atributos para valores calculados são utilizados apenas em tempo de execução e devem ser descartados após finalizar o seu serviço temporário. A especificação do EJB 3 prove a anotação @Transient para esses campos que não precisam ser armazenados na base de dados. Essa anotação não tem qualquer atributo. Sua utilização é bem simples bastando apenas adicionar a anotação na variável de instância ou no método getter apropriado.


    Fonte: http://www.devmedia.com.br/mapeamento-hibernate-configurando-tabelas-e-colunas/29526

  • A questão fala que o atributo valorTotalPedido é um atributo calculado que não será persistido e que será descartado ao finalizar o serviço. Logo vamos analisar cada anotação apresentada nos itens:


    (A) @Basic

    De acordo com a documentação da anotação @Basic disponível em (https://docs.oracle.com/javaee/6/api/javax/persistence/Basic.html), ela é a forma mais simples de mapeamento com uma coluna do banco de dados e pode ser aplicada num atributo persistente ou numa instancia de um dos tipos a seguir: Tipos primitivos, wrappers dos tipos primitivos, String, java.math.BigInteger, java.math.BigDecimal, java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp, byte[], Byte[], char[], Character[], enums, e qualquer outro tipo que implemete java.io.Serializable.

    Item errado. A anotação @Basic persiste no banco de dados e por isso não é recomendada para criar atributos calculados.


    (B) @Embedded

    De acordo com a documentação (https://docs.oracle.com/javaee/6/api/javax/persistence/Embedded.html), a anotação @Embedded especifica um campo ou atributo de uma entidade cujo o valor é uma instancia de uma classe embarcável(embedded class). A classe embarcável precisa ser marcada pela classe @Embeddable.

    Item errado. A anotação @Embeddable persiste os dados e aninha informações em um atributo, não é recomendável para criar o atributo calculado mencionado na questão


    (C) @TemporaryAttribute

    Item Errado. Esta anotação não existe. Vide a lista delas aqui https://docs.oracle.com/javaee/6/api/javax/persistence/package-summary.html


    (D) @GeneratedValue

    De acordo com a documentação https://docs.oracle.com/javaee/6/api/javax/persistence/GeneratedValue.html, esta anotação é usada para especificar a estratégia de geração dos valores das chaves primárias.

    Item Errado. Esta anotação não serve para criar campos calculados. Sua aplicação é a geração de valores para chaves primárias


    (E) @Transient

    De acordo com a documentação https://docs.oracle.com/javaee/6/api/javax/persistence/Transient.html, esta anotação especifica um campo ou atributo que não é persistente.

    Item Correto.

  • Significado de Transiente

    Que não permanece; que passa; transitório, passageiro: sensações transientes.

    Que não dura; momentâneo, efêmero: paixões transientes.

    Letra B.

     

     


ID
1725337
Banca
FCC
Órgão
MPE-PB
Ano
2015
Provas
Disciplina
Programação
Assuntos

Como o algoritmo de pool de conexões do próprio Hibernate é um tanto rudimentar, o desenvolvedor pode desativá-lo e utilizar um connection pool JDBC de código aberto mais robusto, como o

Alternativas
Comentários
  • Apenas um plus sobre a questão:

    A JNDI ou Java Naming and Directory Interface é uma API para acesso a serviços de diretórios.

     

    A Java Transaction API, ou JTA, é uma API pertencente à plataforma Java EE. Ela disponibiliza uma interface para a demarcação de transações em aplicações escritas na linguagem Java. Esta interface é a mesma independentemente da forma como foi implementado o monitor de transação. A JTA é um padrão definido pela JSR 907.

  • C3P0 é nada mais que um pool de conexões, ou seja, é a camada que fica entre o gerenciador que faz conexões com o banco de dados e o próprio banco de dados. Seu principal objetivo é criar conexão com o banco da mesma forma que você criaria utilizando JDBC nativo, porém de maneira transparente.

    FONTE: https://goo.gl/nfptyY


ID
1731313
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2015
Provas
Disciplina
Programação
Assuntos

Julgue o próximo item, relacionado ao funcionamento dos frameworks para a camada de persistência.

O Hibernate define um objeto transient com uma instância de um objeto que tenha persistido e que esteja em transição para consulta e utilização pela aplicação.

Alternativas
Comentários
  • Transient é uma instância que não está persistida.

  • Um objeto é dito transiente quando não tem representação no banco de dados e nem o EntityManager o conhece

  • Hibernate define e suporta os seguintes estados de objetos:
    Transient - um objeto é transiente se ele foi instanciando usando apenas o operador new e não foi associado a uma Session do Hibernate. Ele não possui uma representação persistente no banco de dados e não lhe foi atribuído nenhum identificador. Instâncias transientes serão destruídas pelo coletor de lixo se a aplicação não mantiver sua referência. Use uma Session do Hibernate para tornar o objeto persistente (e deixe o Hibernate gerenciar as instruções SQL que serão necessárias para executar esta transição). Persistent - uma instância persistente possui uma representação no banco de dados e um identificador. Ela pode ter sido salva ou carregada, portanto ela se encontra no escopo de uma Session. O Hibernate irá detectar qualquer mudança feita a um objeto persistente e sincronizar o seu estado com o banco de dados quando completar a unidade de trabalho. Desenvolvedores não executam instruções manuais deUPDATE, ou instruções de DELETE quando o objeto se tornar transiente. Detached – uma instância desanexada é um objeto que foi persistido, mas sua Session foi fechada. A referência ao objeto continua válida, é claro, e a instância desanexada pode ser acoplada a uma novaSession no futuro, tornando-o novamente persistente (e todas as modificações sofridas). Essa característica habilita um modelo de programação para unidades de trabalho de longa execução, que requeira um tempo de espera do usuário. Podemos chamá-las de transações da aplicação, ou seja, uma unidade de trabalho do ponto de vista do usuário.

    https://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/objectstate.html#objectstate-overview
  • Prezados,

    No transient o objeto não está associado a um objeto persistente. No estado transient ou o objeto acabou de ser criado ou foi deletado.

    Portanto a questão está errada.
  • Aluno a = new Aluno()

    @Entity

    class Aluno{

    }

    pronto, essa instancia aí está transient

    No caso, o estado do objeto da questão é MANAGED

  • transient - Uma nova instância de uma classe persistente, que não está associada a uma Sessão e não possui representação no banco de dados, e nenhum valor de identificador é considerado transitório pelo Hibernate.


ID
1753075
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2015
Provas
Disciplina
Programação
Assuntos

Em uma aplicação que utiliza JPA e Hibernate, no arquivo persistence.xml

Alternativas
Comentários
  • String de conexão com o banco, o driver, o usuário e senha. O JPA necessita dessas configurações, e para isso usa-se o arquivo persistence.xml.


    https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/#14-5-configurando-o-jpa-com-as-propriedades-do-banco


  • No arquivo persistence.xml são definidos:

    1. A Unidade de Persistência

    ® Na tag devemos definir qual o nome da nossa unidade de persistência. Esse nome será usado programaticamente para que o JPA saiba quais são as configurações que ele deve usar, como um binding entre a aplicação e o arquivo persistence.xml.

     

    2. Definição do Framework de Persistência e driver do Banco de Dados

    ® A tag identifica qual o framework que estamos utilizando em conjunto com o JPA, que na maioria dos casos é o Hibernate. Abaixo temos várias tags , a hibernate.dialect define um dialeto padrão para escrita de comandos SQL e o jdbc.driver define qual o driver do banco que estamos utilizando, como por exemplo com.mysql.jdbc.Driver.

     

    3. Definição do Nome do Banco de Dados, Usuário e Senha

    ® Nas três últimas propriedades temos o link de conexão ao banco, o usuário e finalmente a senha.

    4. Definição da tag “”

    ® Esta propriedade apresentada configura o que o Hibernate deve fazer com o banco de dados ao ser iniciado.

    ® No caso acima estamos definindo o seu valor como “update”, isso significa que toda vez ao iniciar a nossa aplicação o Hibernate irá checar por alterações entre o mapeamento e o banco de dados, como uma propriedade adicionada em uma classe.

    ® Quando é encontrada alguma alteração então o Hibernate executa o DDL para atualizar o banco de dados.

    ® É muito importante ter cuidado quando esta propriedade estiver sendo usada pois ela pode alterar o banco de dados de uma forma que você não desejava, por isso tenha certeza de que realmente precisa dela.

  • Cada arquivo persistence.xml pode ter uma ou varias unidades de persistência, sendo que cada 1 é identificada com nome único e acessar única base de dados. Desde que a conexão configurada no Wildfly esteja correta, uma aplicação pode se conectar com quantos bancos de dados quiser, 1 para cada unidade de persistência definida.

  • Qual o erro da B)?

    "O é um arquivo de configuração usado pelo JPA, o Hibernate é uma das muitas implementações do JPA. O conteúdo desse arquivo tem informações como a url de conexão, usuário, senha. Além de conter mapeamento das classes que se tornaram as tabelas, e este mapeamento é feito através das anotações."

    https://pt.stackoverflow.com/questions/121998/qual-%C3%A9-a-finalidade-do-arquivo-persistence-xml


ID
1757188
Banca
FCC
Órgão
TRE-PB
Ano
2015
Provas
Disciplina
Programação
Assuntos

No fragmento de código a seguir, considere session um objeto org.hibernate.Session válido e Produto o nome de uma classe persistente de entidade do banco de dados. Considere ainda a existência de diversos produtos cadastrados e de um ambiente ideal no qual a aplicação está em execução.

Criteria crit = session.createCriteria(Produto.class);
..I....
List results = crit.list();

Alternativas
Comentários
  • Hibernate API Criteria: https://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/Criteria.html

    Realizando consultas - http://www.devmedia.com.br/hibernate-api-criteria-realizando-consultas/29627

     

    Exemplo:

    List cats = session.createCriteria(Cat.class) .createCriteria("kittens") .add( Restrictions.like("name", "Iz%") ) .list();

     

    Gabarito: b)


ID
1774537
Banca
ESAF
Órgão
ESAF
Ano
2015
Provas
Disciplina
Programação
Assuntos

O Hibernate é um framework para o mapeamento objeto-relacional. Em relação ao Hibernate, é incorreto afirmar que:

Alternativas
Comentários
  • HIBERNATE possibilita desenvolver classes persistentes usando Java convencional

    letra C)

  • c-

    Para as limitações de mapeamento objeto relacional, surgiram frameworks como Hibernate, poupando o profissional de mapear as classes para tabelas manualmente. A especificação para o mapeamento objeto relacional é JPA, api-padrão Java para a persistência. O JPA fornece um conjunto de interfaces e classes para aplicações Java, parte da especificação JEE desde 5.0.

  • Mas as classes são inconsistentes por acaso?


ID
1797496
Banca
CESPE / CEBRASPE
Órgão
TCE-RO
Ano
2013
Provas
Disciplina
Programação
Assuntos

A seguir, é apresentada parte de um arquivo XML de mapeamento (mapping), correspondente às linhas de 21 a 32, cuja numeração não compõe o arquivo.

21. <class name="Pessoa" table="PESSOA">

22. <id name="id" column="ID_PESSOA ">

23. <generator class="native"/>

24. </id>

25. <property name="idade"/>

26. <property name="nome"/>

27. <property name="sobrenome"/>

28. <set name="Eventos" table="Evento_Pessoa">

29. <key column="ID_PESSOA"/>

30. <many-to-many column="ID_EVENTO" class="Evento"/>

31. </set>

32. </class>

Tendo como referência as informações acima, julgue o item subsequente a respeito do Hibernate 4.2.

De acordo com os padrões do Hibernate 4.2, nas linhas 25, 26 e 27, o correto seria utilizar attribute em vez de property.

Alternativas
Comentários
  • The <property> element is used to map a Java class property to a column in the database table. The name attribute of the element refers to the property in the class and the column attribute refers to the column in the database table. The type attribute holds the hibernate mapping type, this mapping types will convert from Java to SQL data type.

     

    Exemplo:

    <property name = "firstName" column = "first_name" type = "string"/>

    <property name = "lastName" column = "last_name" type = "string"/>

    <property name = "salary" column = "salary" type = "int"/>

      

    Fonte: https://www.tutorialspoint.com/hibernate/hibernate_mapping_files.htm


ID
1797499
Banca
CESPE / CEBRASPE
Órgão
TCE-RO
Ano
2013
Provas
Disciplina
Programação
Assuntos

A seguir, é apresentada parte de um arquivo XML de mapeamento (mapping), correspondente às linhas de 21 a 32, cuja numeração não compõe o arquivo.

21. <class name="Pessoa" table="PESSOA">

22. <id name="id" column="ID_PESSOA ">

23. <generator class="native"/>

24. </id>

25. <property name="idade"/>

26. <property name="nome"/>

27. <property name="sobrenome"/>

28. <set name="Eventos" table="Evento_Pessoa">

29. <key column="ID_PESSOA"/>

30. <many-to-many column="ID_EVENTO" class="Evento"/>

31. </set>

32. </class>

Tendo como referência as informações acima, julgue o item subsequente a respeito do Hibernate 4.2.

Para fazer a correlação entre as classes e banco de dados relacional, o Hibernate utiliza um arquivo XML padronizado para mapear os objetos envolvidos, assim, de acordo com os padrões do Hibernate 4.2, as sintaxes das linhas 21 e 28 estão incorretas.

Alternativas
Comentários
  • Para fazer a correlação entre as classes e banco de dados relacional, o Hibernate utiliza um arquivo XML padronizado para mapear os objetos envolvidos, assim, de acordo com os padrões do Hibernate 4.2, as sintaxes das linhas 21 e 28 estão incorretas (CORRETAS).


ID
1800940
Banca
BIO-RIO
Órgão
IF-RJ
Ano
2015
Provas
Disciplina
Programação
Assuntos

No que diz respeito à linguagem Java, analise as afirmativas a seguir. 

I. JavaServer Faces é o framework de aplicações Web da Sun Microsystems, desenhado para simplificar o desenvolvimento de aplicações Web, através do conceito baseado em componentes, o que possibilita a conexão desses componentes a objetos de negócio de forma simplificada.

II. Hibernate procura ter uma completa solução para o problema de dados persistentes em Java, e é um framework que se relaciona com o banco de dados, relacionamento conhecido como mapeamento objeto/relacional para Java, deixando o desenvolvimento livre para se concentrar em problemas da lógica do negócio.

III. Spring Framework é uma das diversas soluções criadas pela comunidade Java, com o objetivo de amenizar a complexidade que a plataforma traz para o desenvolvimento, principalmente no das aplicações web, com a grande vantagem de ser adaptável a bibliotecas e padrões existentes.

Assinale a alternativa correta:


Alternativas
Comentários
  • N eh mais da sun microsystems

  • I. O JSF deixa claro a separação da camada de apresentação em relação às regras de negócio.

    III. Spring é um framework “leve” de inversão de controle(IOC) e orientação a aspectos(AOP).

         Integra camadas da aplicação.

         Pode ser utilizado na camada de apresentação, negócio e persistência.


ID
1807309
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, relativos ao framework Hibernate. Nesse sentido, considere que a sigla HQL, sempre que utilizada, se refere a  Hibernate Query Language.

Ao se utilizar o Hibernate, não é preciso que se reescrevam consultas HQL durante a migração entre bancos de dados diferentes.

Alternativas
Comentários
  • Essa é justamente a ideia do hibernare

    ao inves de usar sql, usa-se hql


ID
1807312
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, relativos ao framework Hibernate. Nesse sentido, considere que a sigla HQL, sempre que utilizada, se refere a  Hibernate Query Language.

O framework Hibernate, uma solução para se fazer o mapeamento objeto relacional (ORM) em ambientes Java, cuida do mapeamento de classes para tabelas de banco de dados e de tipos de dados Java para tipos de dados SQL.

Alternativas
Comentários
  • Quem faz a conversão de tipos de dados não seria o JDBC, subjacente ao Hibernate?

  • O próprio Hibernate faz essa conversão no processo de Mapeamento Objeto Relacional (ORM).

     

    When you prepare a Hibernate mapping document, you find that you map the Java data types into RDBMS data types. The types declared and used in the mapping files are not Java data types; they are not SQL database types either. These types are called Hibernate mapping types, which can translate from Java to SQL data types and vice versa.

    Fonte: https://www.tutorialspoint.com/hibernate/hibernate_mapping_types.htm

     

    O JDBC apenas recebe o SQL gerado pelo Hibernate para realizar a comunicação com o banco de dados relacional.


ID
1807318
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, relativos ao framework Hibernate. Nesse sentido, considere que a sigla HQL, sempre que utilizada, se refere a  Hibernate Query Language.

Não devem ser utilizados juntos os frameworks JBoss Seam e Hibernate, já que os dois têm exatamente a mesma funcionalidade: o mapeamento de classes Java em tabelas do banco de dados, ou seja, o mapeamento objeto relacional (ORM).

Alternativas
Comentários
  • JBoss Seam é um framework para desemvolvimento de aplicações web por meio da integração de JSF, EJB3, AJAX, JPA, e gerenciamento de processos de negócios.

    Hibernate é um framework para mapeamento objeto relacional (ORM) escrito em java.


ID
1847269
Banca
FCC
Órgão
TRT - 23ª REGIÃO (MT)
Ano
2016
Provas
Disciplina
Programação
Assuntos

Em uma aplicação que utiliza Hibernate como implementação da JPA, para definir suporte ao conjunto de instruções SQL específico de um determinado Sistema Gerenciador de Banco de Dados − SGBD, é necessário definir o dialeto SQL para esse SGBD. Isso normalmente é feito

Alternativas
Comentários
  • https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate

  • Segue um exemplo...

     

    <persistence ...>

          <persistence-unit name="app-persistence">

                <provider>org.hibernate.ejb.HibernatePersistence</provider>

                <properties>

                       <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />

                       <property name="hibernate.hbm2ddl.auto" value="update" />

                       <property name="hibernate.show_sql" value="true" />

                       <property name="hibernate.format_sql" value="true" />

                </properties>

          </persistence-unit>

    </persistence>

  • Sacanagem, pensei no dialect do hibernate.cfg.xml


ID
2034118
Banca
CESPE / CEBRASPE
Órgão
TCE-PA
Ano
2016
Provas
Disciplina
Programação
Assuntos

No que se refere ao desenvolvimento de sistemas e às linguagens de programação Java e JavaScript, julgue o item a seguir.

Empresa de desenvolvimento que opte pela utilização do Hibernate em seus sistemas enfrentará dificuldades à medida que seus projetos forem crescendo, devido ao fato de o Hibernate ser considerado inapropriado para a execução de trabalhos em uma arquitetura altamente escalável.

Alternativas
Comentários
  • Hibernate é altamente escalável também, normalmente os problemas decorrem de meros erros de configuração. Portanto questão errada.

     

    O Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net como o nome NHibernate. Este 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. Hibernate é um software livre de código aberto distribuído com a licença LGPL.

    Fonte: https://pt.wikipedia.org/wiki/Hibernate

  • Essa aqui está bem tranquila. Na verdade, pelo contrário, o Hibernate tem surgido como uma ótima opção de biblioteca de persistência de dados, independentemente do tamanho do projeto. Se pegarmos qualquer framework de ponta do Java como o Spring, temos um módulo do Spring, o Spring Data que utiliza o Hibernate. Bem como outros frameworks, vale ressaltar aqui também que o Hibernate também pode ser utilizado no C# (NHibernate). Além disso, temos outras linguagens que não utilizam o Hibernate, mas utilizam uma biblioteca específica para ORM, como o Laravel (famoso framework PHP) que utiliza Eloquent ORM. Gab.E.

     

  • esse aí é o mito número 1 do hibernate!

     

    http://blog.caelum.com.br/jpa-hibernate-ou-eclipselink/


ID
2047441
Banca
FUNCAB
Órgão
CREA-AC
Ano
2016
Provas
Disciplina
Programação
Assuntos

Em um projeto de software com base em Java, quando se utiliza o framework Hibernate, deseja-se:

Alternativas

ID
2264821
Banca
FGV
Órgão
MPE-MS
Ano
2013
Provas
Disciplina
Programação
Assuntos

Com relação ao framework Hibernate 3.5, analise as afirmativas a seguir.

I. A anotação “@Entity”é usada para indicar ao framework de persistência que a classe que está sendo anotada é uma classe persistente cujo estado deve ser gerenciado pelo framework Hibernate.  

II. A classe “org.hibernate.Session” é um objeto de single‐threaded que representa a conversação entre uma aplicação e o repositório persistente.

III. A API “HibernateSession” é dependente do sistema de demarcação de transações oferecido pela API JDBC.

Assinale:

Alternativas
Comentários
  • Session (org.hibernate.Session)

     

    Objeto single-threaded, de vida curta, representa uma conversação entre o aplicativo e o armazenamento persistente. Cria uma camada sobre uma conexão JDBC. É uma fabrica de Transaction. A Session possui um cachê obrigatório (primeiro nível) de objetos persistentes, usado para navegação nos gráficos de objetos e pesquisa de objetos pelo identificador.

     

    Transaction (org.hibernate.Transaction)

     

    (Opcional) Objeto de vida curta, single threaded, usado pela aplicação para especificar unidades atômicas de trabalho. Abstrai o aplicativo das transações JDBC, JTA ou CORBA adjacentes. Uma Session pode, em alguns casos, iniciar várias Transactions. Entretanto, a demarcação da transação, mesmo utilizando API ou Transaction subjacentes, nunca é opcional.

     

    https://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/architecture.html


ID
2264833
Banca
FGV
Órgão
MPE-MS
Ano
2013
Provas
Disciplina
Programação
Assuntos

Com relação à documentação do Hibernate 3.5, analise as afirmativas a seguir.

I. Uma "Entity manager factory" é usada para fornecer instâncias de "Entity manager".

II. Diferentes instâncias de "Entity manager" fornecidas pela mesma "Entity manager factory" podem ser configuradas para se conectar com diferentes bancos de dados.

III. A interface "Entity manager factory", definida na especificação JPA, possui funcionalidades similares à interface "PersistencyFactory", definida nativamente no Hibernate.

Assinale:

Alternativas
Comentários
  • Alternativa correta: A. 

    II - ERRADA: todas as instâncias devem se conectar ao mesmo BD. Para conectar em BDs diferentes você vai precisar de diferentes EntityManagerFactories.

    III - ERRADA: a interface é parecida com a SessionFactory.

    Essa questão deve ter sido retirada daqui: https://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html_single/#d0e61


ID
2353135
Banca
FCC
Órgão
TRT - 11ª Região (AM e RR)
Ano
2017
Provas
Disciplina
Programação
Assuntos

Uma aplicação Java EE utiliza JPA em conjunto com o provedor de persistência Hibernate. Esta aplicação estabelece conexão com um banco de dados chamado empresa que possui uma tabela departamento. O banco de dados é acessado por meio do usuário root, cuja senha é pC43Ab. Nestas condições, uma instrução correta que pode estar no arquivo persistence.xml é

Alternativas
Comentários
  • a tag da s alternativa d não existe Alternativa correta : A
  • hibernate.connection.username é uma das propriedades do arquivo Persistence.xml


ID
2471125
Banca
Quadrix
Órgão
CFO-DF
Ano
2017
Provas
Disciplina
Programação
Assuntos

Acerca do framework Hibernate e da linguagem de modelagem UML 2.0, julgue o item subsequente.

O Hibernate é um framework que facilita muito o trabalho dos desenvolvedores. No entanto, como qualquer outra ferramenta ou tecnologia, ele possui algumas desvantagens, como, por exemplo, não integrar à parte essencial do framework as anotações utilizadas pela linguagem Java.

Alternativas
Comentários
  • Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net com o nome NHibernate. Este 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 (veja Annotation (java)).

     

    Hibernate é um software livre de código aberto distribuído com a licença LGPL.

     

    O objetivo do Hibernate é diminuir a complexidade entre os programas Java, baseado no modelo orientado a objeto, que precisam trabalhar com um banco de dados do modelo relacional (presente na maioria dos SGBDs). Em especial, no desenvolvimento de consultas e atualizações dos dados.

     

    Sua principal característica é a transformação das classes em Java para tabelas de dados (e dos tipos de dados Java para os da SQL). O Hibernate gera as chamadas SQL e libera o desenvolvedor do trabalho manual da conversão dos dados resultante, mantendo o programa portável para quaisquer bancos de dados SQL, porém causando um pequeno aumento no tempo de execução.

     

    Questão: Errada.


ID
2512570
Banca
INSTITUTO AOCP
Órgão
MPE-BA
Ano
2014
Provas
Disciplina
Programação
Assuntos

Um desenvolvedor utilizou o NHibernate em uma das aplicações que ele estava desenvolvendo. Sobre o NHibernate, é correto afirmar que

Alternativas
Comentários
  • Gabarito C

  • A

    ele gera automaticamente códigos Java para carregar e guardar os objetos.

    Ele gera código SQL a partir dos códigos em linguagens .NET

    B

    dentre as suas principais interfaces, o IQuery representa uma transação controlada pelo NHibernate.

    o ITransaction que representa uma transação controlada pelo NHibernate

    C

    é uma das soluções de Mapeamento objeto-relacional (ORM) para a plataforma de desenvolvimento Microsoft .NET.

    CORRETO

    D

    apesar de não ser baseado em software livre e ter o código proprietário, ele é a versão portada do Java para o Microsoft .NET do Hibernate.

    Sim, ele é a versão portada do Java para o Microsoft .NET do Hibernate. Porém é software livre de código aberto.

    E

    quando implementadas, as suas classes persistentes necessitam uma implementação de interface ou uma herança de uma classe especial base.

    Não precisa implementar interface nem herdar de classes especiais


ID
2519398
Banca
FCC
Órgão
TRE-PR
Ano
2017
Provas
Disciplina
Programação
Assuntos

Considere o fragmento de código abaixo, que utiliza Hibernate Session, em um ambiente Java ideal.


Query q = getSession( ).createQuery("from Candidato where nome_candidato = :nome_candidato");

q.setString("nome_candidato","João");


Nesta consulta, caso o candidato João seja único na tabela do banco de dados, para obter os dados deste candidato em um objeto da classe Candidato, utiliza-se, na sequência do código, a instrução: Candidato candidato =

Alternativas
Comentários
  • a)

    (Candidato) q.uniqueResult( );

  • http://www.javadocexamples.com/org/hibernate/Query/uniqueResult().html

     

    Exemplo:

     

    public Object doInHibernate(Session session) throws HibernateException { 

     

               Query q = session.createQueryb.toString() );

     

    return q.uniqueResult()

     

    }

     

     q.uniqueResult() - Método  retornar uma única instância(resultado) que corresponde à consulta ou null se a consulta não retornar resultados.

  • Resolução:

    caso o candidato João seja único na tabela do banco de dados usaremos o q.uniqueResult( );

    O método uniqueResult() retorna um único resultado ou null.

     

    para obter os dados deste candidato em um objeto da classe Candidato.

    (Candidato) 

     

    Letra a)

    (Candidato) q.uniqueResult( )

     

  • Para fazer essa questão precisamos conhecer o comando uniqueResult( ) do Hibernate:

    - ele retorna uma única da query construída ou NULL se não encontrar.

    - ele torna um objeto - caso encontre.

    Portanto devemos ainda converter o objeto resultante (Object) para o objeto Candidato. 

    (Candidato) q.uniqueResult( );

    GABARITO: A

    Quanto as demais assertivas:

    b) E. getUsuario() é um método da classe Candidato que certamente obtém informações do candidato e ao usarmos ele não acessamos o banco de dados - queremos retornar do banco de dados.

    c) E. getResultAll ( ) é outro método da classe Candidato e não há manipulação com o banco de dados.

    d) E. Ver item c

    e) E. Faltou converter, já que uniqueResult() retorna um Object, que é diferente de Candidato.


ID
2548762
Banca
FUNCERN
Órgão
IF-RN
Ano
2017
Provas
Disciplina
Programação
Assuntos

A ferramenta Hibernate

Alternativas

ID
2567383
Banca
CONSULPLAN
Órgão
TRE-RJ
Ano
2017
Provas
Disciplina
Programação
Assuntos

“Um SessionFactory é ________________ criar, portanto, para qualquer banco de dados, a aplicação deve ter ______________ SessionFactory. O SessionFactory mantém os serviços que o hibernate usa em todas as sessões, como caches de segundo nível, pools de conexão, integrações de sistema de transação etc.” Assinale a alternativa que completa correta e sequencialmente a afirmativa anterior.

Alternativas
Comentários
  • "A SessionFactory is very expensive to create, so, for any given database, the application should have only one associated SessionFactory. The SessionFactory maintains services that Hibernate uses across all Session(s) such as second level caches, connection pools, transaction system integrations, etc."

     

    https://docs.jboss.org/hibernate/orm/5.0/userguide/html_single/chapters/architecture/Architecture.html

  • SessionFactory (org.hibernate.SessionFactory): trata-se de um objeto pesado, thread-safe

    e imutável de coleções de mapeamentos objeto-relacional para um único banco

    de dados – deve existir apenas uma instância na aplicação. É uma fábrica de

    sessões e é necessário um SessionFactory por banco de dados utilizando um

    arquivo de configuração separado – semelhante ao EntityManagerFactory do JPA


ID
2616517
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2018
Provas
Disciplina
Programação
Assuntos

A respeito de construção de sistemas, julgue o item subsequente.


Em sistemas desenvolvidos em Java, o objetivo do framework Hibernate é a transformação das classes para tabelas de dados, com a geração dos comandos SQL.

Alternativas
Comentários
  •  Hibernate :

    É um framework para o mapeamento objeto-relacional escrito na linguagem Java

    Cuida do mapeamento de classes Java para tabelas de banco de dados.

     

    Estados:
        Detached (Destacado)
        Persistent (Persistente)
        Transient (Transiente)

     

     

    Certo

  • É um framework para MAPEAMENTO objeto-relacional  e não para TRANSFORMAÇÃO de classes em tabelas. CESPE como sempre utilizando termos errados ou ambíguos. Para quem errou no concurso, cabe recurso.

  • Eu marquei CERTO apostando na imbecilidade da banca.

  • Segundo o material do professor Rogerio,

    hibernate é um framework para mapeamento objeto/relacional para

    ambientes Java

    • Cuida do mapeamento:

    Das classes Java para tabelas do banco de dados

    Dos tipos de dados Java para os tipos de dados SQL

  • O OBJETIVO?!? Truco!

  • Eu acertei por "conhecer" a banca, mas a afirmativa ficou horrível.

  • @Leophb essa é a razão de responder milhares de questões da banca antes da prova, pra saber como ela pensa.

ID
2618923
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2018
Provas
Disciplina
Programação
Assuntos

Julgue o item subsecutivo, a respeito das camadas de persistência.


No Hibernate, o valor 1 atribuído à propriedade hbm2ddl.auto permite o autocommit para conexões JDBC.

Alternativas
Comentários
  • hibernate.connection.autocommit

    e.g. true | false

    Enables autocommit for JDBC pooled connections (it is not recommended).

     

    hibernate.hbm2ddl.auto

    e.g. validate | update | create | create-drop

    Automatically validates or exports schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactoryis closed explicitly.

     

    https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch03.html

     

    Gabarito: Errado

  • hibernate.connection.autocommit

    por exemplo. verdadeiro | falso

    Ativa a confirmação automática para conexões agrupadas JDBC (não é recomendado).

     

    hibernate.hbm2ddl.auto

    por exemplo. validar | atualização | criar | criar-soltar

    Valida ou exporta automaticamente o esquema DDL para o banco de dados quando a SessionFactory é criada. Com create-drop, o esquema do banco de dados será descartado quando a SessionFactory for fechada explicitamente.

    https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch03.html

  • hbm2.ddlauto é pra fazer schema generation

    update, create, validate Sao alguns dos valores possiveis

    nao tem nada a ver com auto commit

    mas questão muito boa, apesar de ser bem difícil


ID
2630143
Banca
FAURGS
Órgão
HCPA
Ano
2016
Provas
Disciplina
Programação
Assuntos

Considere as afirmações abaixo sobre as estratégias de herança no Hibernate.


I - A herança simples pode ser mapeada para uma tabela única por hierarquia de classe, sendo que uma única tabela armazena todas as instâncias de uma hierarquia de classes.

II - A herança múltipla pode ser mapeada para tabelas distintas tanto para a superclasse quanto para as subclasses.

III - A herança simples pode ser mapeada para uma tabela por classe concreta. Cada tabela armazena as propriedades da classe e de suas superclasses, isto é, o estado da entidade é armazenado na tabela inteiramente dedicada para a sua classe.


Quais estão corretas?

Alternativas

ID
2630149
Banca
FAURGS
Órgão
HCPA
Ano
2016
Provas
Disciplina
Programação
Assuntos

Qual é a anotação no Hibernate que permite marcar uma propriedade como identificador?

Alternativas

ID
2789458
Banca
CCV-UFC
Órgão
UFC
Ano
2016
Provas
Disciplina
Programação
Assuntos

O framework de persistência de dados Hibernate possui as seguintes annotations para designar os tipos de associação entre entidades:

Alternativas
Comentários
  • Quem não tem acesso: --> B


ID
2789515
Banca
CCV-UFC
Órgão
UFC
Ano
2016
Provas
Disciplina
Programação
Assuntos

Por meio de qual elemento da arquitetura do framework Hibernate, podemos obter objetos session?

Alternativas
Comentários
  • Quem não tem acesso: --> C

  • Interface SessionFactory

    Responsável por manter o mapeamento objeto relacional em memória. Permite a criação de objetos Session, a partir dos quais os dados são acessados, também denominado como fábrica de objetos Sessions. Deve existir apenas uma instância dele na aplicação, pois é um objeto muito pesado para ser criado várias vezes.

    Fonte: http://www.webcodefree.com.br/blog/?p=1050


ID
2789617
Banca
CCV-UFC
Órgão
UFC
Ano
2016
Provas
Disciplina
Programação
Assuntos

O Hibernate é um ORM (Object Relational Mapping) com o intuito de tornar o mapeamento dos objetos da aplicação na base de dados mais automatizada. Sobre esse ORM, é correto afirmar:

Alternativas
Comentários
  • um dos erros da E é que não precisa ser só por XML... o outro é...? :)


ID
2789641
Banca
CCV-UFC
Órgão
UFC
Ano
2016
Provas
Disciplina
Programação
Assuntos

Sobre o Hibernate, é correto afirmar:

Alternativas
Comentários
  • Quem não tem acesso: --> B


ID
2791381
Banca
CCV-UFC
Órgão
UFC
Ano
2013
Provas
Disciplina
Programação
Assuntos

Com relação ao Hibernate, pode-se afirmar que:

Alternativas
Comentários
  • Quem não tem acesso: --> C


ID
2791507
Banca
CCV-UFC
Órgão
UFC
Ano
2013
Provas
Disciplina
Programação
Assuntos

A respeito dos frameworks de desenvolvimento Java é correto afirmar.

Alternativas
Comentários
  • a) q eu sabia é Criteria, não conheço esse HCritetia b) escopo padrão eh Request

ID
2810140
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2018
Provas
Disciplina
Programação
Assuntos

Com relação a criptografia, desenvolvimento orientado a testes (TDD — test driven development) e Hibernate, julgue o seguinte item.

O Hibernate é uma solução tecnológica para ORM (mapeamento objeto-relacional) que aceita o uso da JPA (Java Persistence API) e que permite padronizar as implementações de ORM em Java, embora ainda seja possível mapear as classes utilizando-se o XML.

Alternativas
Comentários
  • Hibernate
        Estados
            Detached (Destacado)
            Persistent (Persistente)
            Transient (Transiente)
        É um framework para o mapeamento objeto-relacional escrito na linguagem Java
        Session
        

    cuida do mapeamento de classes Java para tabelas de banco de dados. 

        Transforma classes para tabelas de dados, com a geração dos comandos SQL.

  • Eu acho que está invertido. O Jpa é o padrão, que aceita o Hibernate como implementação. Discordo deste gabarito.
  • Achei que estivesse invertido também.

  • Assertiva CORRETA.


    Acho que a questão é mais sutil. JPA é a interface (padrão), Hibernate é a implementação. Em java, quando você implementa uma interface, você aceita seguir suas especificações. Por isso que "hibernate aceita JPA" está correto, embora JPA tenha surgido depois do hibernate e demais tecnologias de ORM.

  • O Hibernate é uma solução tecnológica para ORM (mapeamento objeto-relacional) que aceita o uso da JPA (Java Persistence API) = CERTO. Entendi a argumentação do Luis, que o Hibernate aceita utilizar o JPA, já que está alinhado com as interfaces do mesmo.

    e que permite padronizar as implementações de ORM em Java, = ERRADO. Esse "QUE" eu entendi que esta retomando Hibernate, então ficaria errado porque quem permite a padronização dos ORMs é o JPA, sendo o Hibernate um dos ORM.

    embora ainda seja possível mapear as classes utilizando-se o XML. = Certo.

  • Existe o Certo, existe o Errado, e existe o conceito da Cespe!

  • ficou meio estranho, mas nao dá pra colocar como errada nao

    Ele quis dizer o seguinte: posso usar as anotações definidos no JPA para fazer mapeamento no Hibernate, assim como o hbm do próprio hibernate?

    SIM

  • Terceira vez que erro essa questão esquisita.

    "que permite padronizar as implementações de ORM em Java" - o Hibernate padroniza as implementações??


ID
2821525
Banca
COMPERVE
Órgão
UFRN
Ano
2018
Provas
Disciplina
Programação
Assuntos

O hibernate é uma tecnologia bastante utilizada para o mapeamento objeto-relacional de sistemas Java. Sobre essa tecnologia, analise as afirmativas abaixo.

I @Entity deve ser utilizado para anotar classes persistentes.

II @Table é uma anotação utilizada em atributos de classes.

III @Id anota atributos cujos valores podem ser gerados automaticamente.

IV @TableKey anota atributos que representam chaves primárias.

Estão corretas as afirmativas

Alternativas
Comentários
  • I @Entity deve ser utilizado para anotar classes persistentes. - correto

    II @Table é uma anotação utilizada em atributos de classes. errado (anotar a classe)

    III @Id anota atributos cujos valores podem ser gerados automaticamente. correto

    IV @TableKey anota atributos que representam chaves primárias. errado (não existe, pelo menos não achei na documentação)


    letra D)


    go ahead!!

  • O item IV é @Id.

    O item III tá mais pra @GeneratedValue


ID
2821531
Banca
COMPERVE
Órgão
UFRN
Ano
2018
Provas
Disciplina
Programação
Assuntos

As anotações são mecanismos importantes para configuração do funcionamento do hibernate para um sistema específico. Sobre essa temática, analise as afirmativas abaixo.


I Em um relacionamento bidirecional, é possível fazer uso das anotações @OneToMany, @ManyToOne e @JoinColumn.

II A anotação @ManyToMany não é suportada pelo hibernate.

III @PrimaryKeyJoinColumn indica que a chave primária de uma entidade é usada como chave estrangeira.

IV @Todo indica um ponto de extensão em linhas de produtos de software.


Estão corretas as afirmativas

Alternativas

ID
2986771
Banca
CCV-UFC
Órgão
UFC
Ano
2019
Provas
Disciplina
Programação
Assuntos

Analise o cenário a seguir.


“Um técnico de Tecnologia da Informação da UFC está analisando o desempenho do sistema Web, onde os usuários estão relatando lentidão no sistema. Ele identificou que os servidores de aplicação e de banco de dados estão com recursos livres, descartando a sobrecarga no sistema. Ele então analisou os parâmetros de configuração do Hibernate na aplicação e encontrou um ponto de gargalo referente a quantidade de requisições que a aplicação pode ter com o banco de dados.”


Qual das configurações abaixo do Hibernate o cenário está relacionado?

Alternativas
Comentários
  • Oi!

    Gabarito: D

    Bons estudos!

    -As pessoas costumam dizer que a motivação não dura sempre. Bem, nem o efeito do banho, por isso recomenda-se diariamente. – Zig Ziglar


ID
2986774
Banca
CCV-UFC
Órgão
UFC
Ano
2019
Provas
Disciplina
Programação
Assuntos

Sobre o ORM (Object Relational Mapping) Hibernate 5, é correto afirmar:

Alternativas
Comentários
  • O correto não seria o contrário: o JPA que implementa o Hibernate?

    Se alguém souber a resposta e poder me informar.

    obrigada

  • E

  • Luana, o Hibernate é a ferramenta que utiliza a especificação JPA. Ele utiliza os padrões definidos, portanto, ele implementa o JPA.


ID
2986801
Banca
CCV-UFC
Órgão
UFC
Ano
2019
Provas
Disciplina
Programação
Assuntos

No Hibernate 5, qual das opções abaixo contém a annotation responsável por especificar o nome da coluna que define a chave estrangeira relacionada com uma associação “muitos para um” (Many To One)?

Alternativas
Comentários
  • Exemplo 5 em https://www.devmedia.com.br/hibernate-mapping-mapeando-relacionamentos-entre-entidades/29445

  • B


ID
2995051
Banca
FCC
Órgão
SEMEF Manaus - AM
Ano
2019
Provas
Disciplina
Programação
Assuntos

Em uma aplicação Java web que utiliza o Hibernate, um programador deseja adicionar uma nova instância de entidade ao contexto de persistência e, para isso, digitou o fragmento de código abaixo em um ambiente ideal.

Contribuinte contribuinte = new Contribuinte();
contribuinte.setNome("Maria da Silva");
session.persist(contribuinte) ;

Nesse trecho de código o objeto contribuinte

Alternativas
Comentários
  • Quando o objeto é persistido (geralmente em um banco de dados), ele passa para o estado Managed. Neste, qualquer alteração no objeto será sincronizada com o dado persistido. Essa sincronização não é em tempo real. Uma alteração no objeto não irá executar automaticamente um comando SQL, isso só irá acontecer em “flush time”.

    https://www.treinaweb.com.br/blog/entendendo-o-metodo-merge-do-jpa/


ID
3062227
Banca
PR-4 UFRJ
Órgão
UFRJ
Ano
2018
Provas
Disciplina
Programação
Assuntos

Considere o fragmento de código a seguir escrito em Java e que utiliza Hibernate.


1.Criteria crit = session.createCriteria(Produto.class);

2.crit.add(Restrictions.gt(“preco”,new Double(30.0)));

3.List results = crit.list();


De acordo com a linha 2, é possível afirmar que o trecho indicado retornará produtos cujos preços sejam:

Alternativas
Comentários
  • O que determinada o gabarito da questão é o trecho em negrito:

    .crit.add(Restrictions.gt(“preco”,new Double(30.0)));

    Ou seja, a restrição é um número maior que 30 ( gt , em inglês: GreaterThan)

    GABARITO ALTERNATIVA E