Hibernate Interview Questions Series Part 3

This is the Series three of Hibernate Interview Questions

21.How do you invoke Stored Procedures?

{ ? = call selectAllEmployees() }

22.Explain Criteria API
Criteria is a simplified API for retrieving entities by composing Criterion objects. This is
a very convenient approach for functionality like “search” screens where there is a

variable number of conditions to be placed upon the result set.
Example :
List employees = session.createCriteria(Employee.class)
.add(Restrictions.like(“name”, “a%”) )
.add(Restrictions.like(“address”, “Boston”))
.addOrder(Order.asc(“name”) )

23.Define Hibernate Template?
org.springframework.orm.hibernate.HibernateTemplate is a helper class which
provides different methods for querying/retrieving data from the database. It also
converts checked HibernateExceptions into unchecked DataAccessExceptions.

24.What are the benefits does HibernateTemplate provide?
The benefits of HibernateTemplate are :
· HibernateTemplate, a Spring Template class simplifies interactions with
Hibernate Session.
· Common functions are simplified to single method calls.
· Sessions are automatically closed.
· Exceptions are automatically caught and converted to runtime exceptions.

25.How do you switch between relational databases without code changes?
Using Hibernate SQL Dialects , we can switch databases. Hibernate will generate
appropriate hql queries based on the dialect defined.

26.If you want to see the Hibernate generated SQL statements on console, what should we do?
In Hibernate configuration file set as follows: true

27.What are derived properties?
The properties that are not mapped to a column, but calculated at runtime by evaluation
of an expression are called derived properties. The expression can be defined using the
formula attribute of the element.

28.What is component mapping in Hibernate?

· A component is an object saved as a value, not as a reference
· A component can be saved directly without needing to declare interfaces or
identifier properties
· Required to define an empty constructor
· Shared references not supported

29.What is the difference between sorted and ordered collection in hibernate?
sorted collection vs. order collection :-
sorted collection order collection
A sorted collection is sorting a collection
by utilizing the sorting features provided by
the Java collections framework. The sorting
occurs in the memory of JVM which
running Hibernate, after the data being read
from database using java comparator.
Order collection is sorting a collection by
specifying the order-by clause for sorting
this collection when retrieval.
If your collection is not large, it will be If your collection is very large, it will be

more efficient way to sort it. more efficient way to sort it .

30.What is the advantage of Hibernate over jdbc?
Hibernate Vs. JDBC :-
JDBC Hibernate
With JDBC, developer
has to write code to map an object model’s
data representation to a relational data
model and its corresponding database
Hibernate is flexible and powerful ORM
solution to map Java classes to database
tables. Hibernate itself takes care of this
mapping using XML files so developer
does not need to write code for this.
With JDBC, the automatic mapping of Java
objects with database tables and vice versa
conversion is to be taken care of by the
developer manually with lines of code.
Hibernate provides transparent persistence
and developer does not need to write code
explicitly to map database tables tuples to
application objects during interaction with
JDBC supports only native Structured
Query Language (SQL). Developer has to
find out the efficient way to access
database, i.e. to select effective query from
a number of queries to perform same task.
Hibernate provides a powerful query
language Hibernate Query Language
(independent from type of database) that is
expressed in a familiar SQL like syntax and
includes full support for polymorphic
queries. Hibernate also supports native
SQL statements. It also selects an effective
way to perform a database manipulation
task for an application.
Application using JDBC to handle
persistent data (database tables) having
database specific code in large amount. The
code written to map table data to
application objects and vice versa is
actually to map table fields to object
properties. As table changed or database
changed then it’s essential to change object
structure as well as to change code written
to map table-to-object/object-to-table.
Hibernate provides this mapping itself. The
actual mapping between tables and
application objects is done in XML files. If
there is change in Database or in any table
then the only need to change XML file
With JDBC, it is developer’s responsibility
to handle JDBC result set and convert it to
Java objects through code to use this
Hibernate reduces lines of code by
maintaining object-table mapping itself and
returns result to application in form of Java

persistent data in application. So with
JDBC, mapping between Java objects and
database tables is done manually.
objects. It relieves programmer from
manual handling of persistent data, hence
reducing the development time and
maintenance cost.
With JDBC, caching is maintained by
Hibernate, with Transparent Persistence,
cache is set to application work space.
Relational tuples are moved to this cache as
a result of query. It improves performance
if client application reads same data many
times for same write. Automatic
Transparent Persistence allows the
developer to concentrate more on business
logic rather than this application code.
In JDBC there is no check that always
every user has updated data. This check has
to be added by the developer.
Hibernate enables developer to define
version type field to application, due to this
defined field Hibernate updates version
field of database table every time relational
tuple is updated in form of Java class object
to that table. So if two users retrieve same
tuple and then modify it and one user save
this modified tuple to database, version is
automatically updated for this tuple by
Hibernate. When other user tries to save
updated tuple to database then it does not
allow saving it because this user does not
have updated data.

Hibernate Interview Questions part 2
Hibernate Interview Questions part 4

Leave a Comment