Spring Questions and Answers – Hibernate and JPA Contextual Sessions

This set of Java Spring MCQs focuses on “Hibernate and JPA’s Contextual Sessions”.

1. Spring HibernateTemplate can simplify your DAO implementation by managing sessions and transactions for you.
a) True
b) False
View Answer

Answer: a
Explanation: However, using HibernateTemplate means your DAO has to depend on Spring API.

2. An alternative to Spring HibernateTemplate is:-
a) HibernateContext
b) Hibernate contextual sessions
c) All of the mentioned
d) None of the mentioned
View Answer

Answer: b
Explanation: An alternative to Spring HibernateTemplate is to use Hibernate contextual sessions.

3. Sessionfactory can manage contextual sessions for you and allows you to retrieve them by the:-
a) getSession() method
b) getCurrent() method
c) getCurrentSession() method
d) none of the mentioned
View Answer

Answer: c
Explanation: In Hibernate 3, a sessionfactory can manage contextual sessions for you and allows you to retrieve them by the getCurrentSession() method on org.hibernate.SessionFactory.
advertisement
advertisement

4. DAO methods require access to the session factory, which can be injected:-
a) a setter method
b) constructor argument
c) none of the mentioned
d) all of the mentioned
View Answer

Answer: d
Explanation: To use the contextual session approach, your DAO methods require access to the session factory, which can be injected via a setter method or a constructor argument.

5. DAO methods must be made transactional.
a) True
b) False
View Answer

Answer: a
Explanation: This is required because Spring wraps the SessionFactory with a proxy that expects that Spring transaction management is in play when methods on a session are made.
Sanfoundry Certification Contest of the Month is Live. 100+ Subjects. Participate Now!

6. Annotation to find a transaction and then fail, complaining that no Hibernate session been bound to the thread.
a) @Transaction
b) @Transactional
c) @Transactions
d) None of the mentioned
View Answer

Answer: b
Explanation: This ensures that the persistence operations within a DAO method will be executed in the same transaction and hence by the same session.

7. In the bean configuration file for Hibernate (i.e., beans-hibernate.xml), you have to declare a HibernateTransactionManager instance for this application and enable declarative transaction via:-
a) tx:annotation
b) tx:annotationdriven
c) tx:annotation-driven
d) none of the mentioned
View Answer

Answer: c
Explanation: In the bean configuration file for Hibernate (i.e., beans-hibernate.xml), you have to declare a HibernateTransactionManager instance for this application and enable declarative transaction management via tx:annotation-driven.
advertisement

8. HibernateTemplate will translate the native Hibernate exceptions into exceptions in Spring DataAccessException hierarchy.
a) True
b) False
View Answer

Answer: a
Explanation: This allows consistent exception handling for different data access strategies in Spring.

9. Annotation for Hibernate exceptions to be translated into Spring DataAccessException for consistent exception handling:-
a) @Translation
b) @Repo
c) @Repository
d) None of the mentioned
View Answer

Answer: c
Explanation: If you want the Hibernate exceptions to be translated into Spring DataAccessException for consistent exception handling, you have to apply the @Repository annotation to your DAO class that requires exception translation.
advertisement

10. Instance to translate the native Hibernate exceptions into data access exceptions in Spring DataAccessException hierarchy.
a) PersistenceExceptionPostProcessor
b) PersistenceExceptionTranslation
c) PersistenceException
d) PersistenceExceptionTranslationPostProcessor
View Answer

Answer: d
Explanation: This bean post processor will only translate exceptions for beans annotated with @Repository.

11. You can assign a component name in this annotation and have the session factory autowired by the Spring IoC container with @Autowired.
a) True
b) False
View Answer

Answer: a
Explanation: In Spring, @Repository is a stereotype annotation. By annotating it, a component class can be auto-detected through component scanning.

12. Spring provides to simplify your DAO implementation by managing entitymanagers and transactions for you:-
a) HibernateTemplate
b) JpaTemplate
c) SpringTemplate
d) None of the mentioned
View Answer

Answer: b
Explanation: Using Spring JpaTemplate means your DAO is dependent on Spring API.

13. Annotation used for entity manager injection in EJB components.
a) @PersistenceContext
b) @Persistence
c) @PersistenceCon
d) None of the mentioned
View Answer

Answer: a
Explanation: Spring can also interpret this annotation by means of a bean post processor.

14. To use the context injection approach, you can declare an entity manager field in your DAO and annotate it with the @PersistenceContext annotation.
a) True
b) False
View Answer

Answer: a
Explanation: Spring will inject an entity manager into this field for you to persist your objects.

15. JpaTemplate will translate the native JPA exceptions into exceptions in Spring DataAccessException hierarchy.
a) True
b) False
View Answer

Answer: a
Explanation: If you want JPA exceptions to be translated into Spring DataAccessException, you have to apply the @Repository annotation to your DAO class.

Sanfoundry Global Education & Learning Series – Java Spring.
To practice all areas of Java Spring, here is complete set of 1000+ Multiple Choice Questions and Answers.

If you find a mistake in question / option / answer, kindly take a screenshot and email to [email protected]

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.