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.
advertisement

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.

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.
advertisement

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.

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.
advertisement

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.

advertisement
advertisement
advertisement
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He is Linux Kernel Developer & SAN Architect and is passionate about competency developments in these areas. He lives in Bangalore and delivers focused training sessions to IT professionals in Linux Kernel, Linux Debugging, Linux Device Drivers, Linux Networking, Linux Storage, Advanced C Programming, SAN Storage Technologies, SCSI Internals & Storage Protocols such as iSCSI & Fiber Channel. Stay connected with him @ LinkedIn