-
What is Hibernate?
Hibernate is a powerful, high performance object/relational persistence and
query service. This lets the users to develop persistent classes following
object-oriented principles such as association, inheritance, polymorphism,
composition, and collections.
-
What is ORM?
ORM stands for Object/Relational mapping. It is the programmed and translucent
perseverance of objects in a Java application in to the tables of a relational
database using the metadata that describes the mapping between the objects and
the database. It works by transforming the data from one representation to
another.
-
What does an ORM solution comprises of?
-
It should have an API for performing basic CRUD (Create, Read, Update,
Delete) operations on objects of persistent classes
-
Should have a language or an API for specifying queries that refer to the
classes and the properties of classes
-
An ability for specifying mapping metadata
-
It should have a technique for ORM implementation to interact with
transactional objects to perform dirty checking, lazy association
fetching, and other optimization functions
-
What are the different levels of ORM quality?
There are four levels defined for ORM quality.
-
Pure relational
-
Light object mapping
-
Medium object mapping
-
Full object mapping
-
What is a pure relational ORM?
The entire application, including the user interface, is designed around the
relational model and SQL-based relational operations.
-
What is a meant by light object mapping?
The entities are represented as classes that are mapped manually to the
relational tables. The code is hidden from the business logic using specific
design patterns. This approach is successful for applications with a less
number of entities, or applications with common, metadata-driven data models.
This approach is most known to all.
-
What is a meant by medium object mapping?
The application is designed around an object model. The SQL code is generated
at build time. And the associations between objects are supported by the
persistence mechanism, and queries are specified using an object-oriented
expression language. This is best suited for medium-sized applications with
some complex transactions. Used when the mapping exceeds 25 different database
products at a time.
-
What is meant by full object mapping?
Full object mapping supports sophisticated object modeling: composition,
inheritance, polymorphism and persistence. The persistence layer implements
transparent persistence; persistent classes do not inherit any special base
class or have to implement a special interface. Efficient fetching strategies
and caching strategies are implemented transparently to the application.
-
What are the benefits of ORM and Hibernate?
There are many benefits from these. Out of which the following are the most
important one.
-
Productivity – Hibernate reduces the burden of developer by
providing much of the functionality and let the developer to concentrate
on business logic.
-
Maintainability – As hibernate provides most of the
functionality, the LOC for the application will be reduced and it is
easy to maintain. By automated object/relational persistence it even
reduces the LOC.
-
Performance – Hand-coded persistence provided greater performance
than automated one. But this is not true all the times. But in
hibernate, it provides more optimization that works all the time there
by increasing the performance. If it is automated persistence then it
still increases the performance.
-
Vendor independence – Irrespective of the different types of
databases that are there, hibernate provides a much easier way to
develop a cross platform application.
-
How does hibernate code looks like?
-
|
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
MyPersistanceClass mpc = new MyPersistanceClass ("Sample App");
session.save(mpc);
tx.commit();
session.close();
|
The Session and Transaction are the interfaces provided by hibernate. There
are many other interfaces besides this.
|
|
|
Bookmark This Page :
|
|
|
|
|
|
|
|
|
|
|
|
java6 ejb3 jsf hibernate eclipse ajax groovy spring seam java struts webservice j2me guice java5 jca tapestry soa linux ria |