Assinale:
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.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - se somente as afirmativas I e II estiverem corretas.
Vamos entender o que cada afirmativa está dizendo e por que as afirmativas I e II são corretas.
Sobre a afirmativa I: A anotação @Entity é parte da Java Persistence API (JPA) e é usada no Hibernate para indicar que uma classe é uma entidade, o que significa que ela é mapeada para uma tabela no banco de dados e seu estado deve ser persistido. Portanto, essa afirmativa está correta.
Sobre a afirmativa II: A classe org.hibernate.Session representa de fato uma sessão com o banco de dados e é concebida para ser usada por um único thread, ou seja, não é thread-safe. Ela serve como a principal interface para a execução das operações de banco de dados em uma aplicação Java utilizando o Hibernate. Assim, essa afirmativa também está correta.
Sobre a afirmativa III: Ela contém um erro ao referir-se a “HibernateSession”, pois o correto é Session sem o prefixo "Hibernate". Além disso, a Session do Hibernate pode operar sem depender diretamente da API JDBC para demarcação de transações, pois ela pode usar outras APIs de transação, como JTA, por exemplo. Então, essa afirmativa está incorreta.
Com base na análise das afirmativas, concluímos que a alternativa D é a correta, pois apenas as afirmativas I e II estão corretas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
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
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo