Hibernate Interview Questions Series Part 2

This is the Series two of Hibernate Interview Questions

11.What role does the Session interface play in Hibernate?
The Session interface is the primary interface used by Hibernate applications. It is a
single-threaded, short-lived object representing a conversation between the application
and the persistent store. It allows you to create query objects to retrieve persistent objects.
Session session = sessionFactory.openSession();
Session interface role:
· Wraps a JDBC connection

· Factory for Transaction
· Holds a mandatory (first-level) cache of persistent objects, used when navigating
the object graph or looking up objects by identifier

12.What role does the SessionFactory interface play in Hibernate?
The application obtains Session instances from a SessionFactory. There is typically a
single SessionFactory for the whole application—created during application
initialization. The SessionFactory caches generate SQL statements and other mapping
metadata that Hibernate uses at runtime. It also holds cached data that has been read in
one unit of work and may be reused in a future unit of work
SessionFactory sessionFactory = configuration.buildSessionFactory();

13.What is the general flow of Hibernate communication with RDBMS?
The general flow of Hibernate communication with RDBMS is :
· Load the Hibernate configuration file and create configuration object. It will
automatically load all hbm mapping files
· Create session factory from configuration object
· Get one session from this session factory
· Create HQL Query
· Execute query to get list containing Java objects

14.What is Hibernate Query Language (HQL)?
Hibernate offers a query language that embodies a very powerful and flexible mechanism
to query, store, update, and retrieve objects from a database. This language, the Hibernate
query Language (HQL), is an object-oriented extension to SQL.

15.How do you map Java Objects with Database tables?
· First we need to write Java domain objects (beans with setter and getter). The
variables should be same as database columns.
· Write hbm.xml, where we map java class to table and database columns to Java
class variables.
Example :

16.What’s the difference between load() and get()?
load() vs. get() :-
load() get()
Only use the load() method if you are sure
that the object exists.
If you are not sure that the object exists,
then use one of the get() methods.
load() method will throw an exception if the
unique id is not found in the database.
get() method will return null if the
unique id is not found in the database.
load() just returns a proxy by default and
database won’t be hit until the proxy is first
get() will hit the database

17.What is the difference between and merge and update ?
Use update() if you are sure that the session does not contain an already persistent
instance with the same identifier, and merge() if you want to merge your modifications
at any time without consideration of the state of the session.

18.How do you define sequence generated primary key in hibernate?
Using tag.


19.Define cascade and inverse option in one-many mapping?
cascade – enable operations to cascade to child entities.
inverse – mark this collection as the “inverse” end of a bidirectional association.
Essentially “inverse” indicates which end of a relationship should be ignored, so when
persisting a parent who has a collection of children, should you ask the parent for its list
of children, or ask the children who the parents are?

20.What do you mean by Named – SQL query?
Named SQL queries are defined in the mapping xml document and called wherever

SELECT emp.EMP_ID AS {emp.empid},
emp.EMP_ADDRESS AS {emp.address},
emp.EMP_NAME AS {emp.name}
FROM Employee EMP WHERE emp.NAME LIKE :name

Invoke Named Query :
List people = session.getNamedQuery(“empdetails”)
.setString(“TomBrady”, name)

Hibernate Interview Questions part 1
Hibernate Interview Questions part 3

Leave a Comment