Is Hibernate the best choice?
Is Hibernate the best choice? Or is the technical marketing of other ORM vendors lacking? Although, I tend to use Hibernate as my first choice, it would be nice to see some head to head comparisons of Hibernate vs. TopLink (pros and cons), Hibernate vs. OpenJPA, Hibernate vs. Cayenne, etc. Searching around finds that many of the comparison are pretty old and not very detailed or compelling.
The minimal configuration for testing Hibernate
In my previous post I announced my intention of creating a personal Hibernate course. The first thing to start with is a minimal testing configuration. The examples are relevant for Hibernate 4. In a real production environment you won’t use Hibernate alone, as you may integrate it in a JEE or Spring container. For testing Hibernate features you don’t need a full-blown framework stack, you can simply rely on Hibernate flexible configuration options.
Struts2 & Hibernate 4 integration
Before proceeding to this tutorial, you can go through my earlier tutorial how to start new struts2 application. In this tutorial we are going to see how to integrate hibernate with struts 2. Let us develop sample application for Adding / Deleting / Listing Items in Inventory using MySQL database with Hibernate support. Later on we can see how to migrate the same application to use DB2 database without changing any java code and query part. Switching to other SQL database requires few changes in Hibernate configuration file which is the main advantage of using Hibernate. Without using hibernate it is very difficult to switch over to any database especially at later stage.
How to customize hibernate dirty checking mechanism
In my previous article I described the Hibernate automatic dirty checking mechanism. While you should always prefer it, there might be times when you want to add your own custom dirtiness detection strategy. Hibernate offers the following customization mechanisms: Hibernate Interceptor#findDirty(), CustomEntityDirtinessStrategy
Hibernate one-to-one mapping using annotations
If you are working on any hibernate project or you are planning to work on any in future, then you can easily understand the one-to-one relationships between several entities in your application. In this post, i will discuss variations of one-to-one mappings supported in hibernate.
Hibernate 3 introduction and writing hello world application
Hibernate was started in 2001 by Gavin King as an alternative to using EJB2-style entity beans. Its mission back then was to simply offer better persistence capabilities than offered by EJB2 by simplifying the complexities and allowing for missing features. Hibernate used its mapping files and configuration files to achieve its objectives. With the introduction of annotations in java community with JDK 1.5, Hibernate community started working on Hibernate 3, which has support for annotations.
Hibernate Example using Hibernate Tools
Learn how to create a simple example using the Eclipse IDE and Hibernate Tools plug-in.
Hibernate Inheritance: Table Per Class Hierarchy (Annotation & XML Mapping)
Welcome to Hibernate Tutorial Series. In previous tutorials we saw how to implement Relationship Mapping in Hibernate. We saw different mapping techniques like One to Many, Many to Many using both Annotations and XML mapping. Today we will see how the Inheritance is managed in Hibernate. You may want to look at previous tutorials. Here is the complete list for you.
Developing Applications with JBoss and Hibernate
Developers will be introduced to Hibernate and learn to build Java classes and map files from scratch. They will also learn to reverse engineer the database schema into Java classes and Hibernate mapping files and build a web application that will be able to interact with the Hibernate POJOs which they will later deploy to JBoss AS.
Hibernate insert query tutorial
Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. This means you are not required to build and execute SQL queries for interaction with database. You just have to instruct hibernate for that by calling hibernate APIs and hibernate will create and execute those SQL queries on behalf of you. In this tutorial, I am giving example of inserting data in a single table. We have an object in application i.e. Employee. We want to store it in database. It has following attributes...
Hibernate collections optimistic locking
Hibernate provides an optimistic locking mechanism to prevent lost updates even for long-conversations. In conjunction with an entity storage, spanning over multiple user requests (extended persistence context or detached entities) Hibernate can guarantee application-level repeatable-reads.
Hibernate facts: how to “assert” the sql statement count
Hibernate simplifies CRUD operations, especially when dealing with entity graphs. But any abstraction has its price and Hibernate is no different. I’ve already talked about the importance of fetching strategy and knowing your Criteria SQL queries, but there is more you can do to rule over JPA. This post is about controlling the SQL statement count that Hibernate calls on your behalf. Before ORM tools got so popular, all database interactions were done through explicit SQL statements, and optimizations were mostly targeted towards slow queries.
Batch insert in Hibernate
This example program shows how to insert multiple rows using the batch processing in hibernate. when there are thousand of rows to be persisted, everytime iterating and inserting will cause the memory problem. Hibernate stores all the persisted objects in the memory. To avoid this problem use batch processing in the hibernate.
Hibernate 4 example to get entity reference for lazy loading
By Wikipedia definition, Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. We know that in hibernate lazy loading can be done by specifying “fetch= FetchType.LAZY” in hibernate mapping annotations.
Hibernate Development Environment with Eclipse and Maven
This tutorial is part of the Hibernate introduction series. This is to help setup and getting started with Hibernate. Needless to say, we need JDK. Our choice of IDE is Eclipse, build tool is Maven. You can do with Netbeans or any other editor. ANT or any other build tool is also fine.
The dark side of Hibernate auto flush
Many would assume that Hibernate always flushes the Session before any executing query. While this might have been a more intuitive approach, and probably closer to the JPA’s AUTO FlushModeType, Hibernate tries to optimize that. If the current executed query is not going to hit the pending SQL INSERT/UPDATE/DELETE statements then the flush is not strictly required.
A beginner's guide to JPA / Hibernate flush strategies
All managed entity state transitions are translated to associated database statements when the current Persistence Context gets flushed. Hibernate’s flush behavior is not always as obvious as one might think. Hibernate tries to defer the Persistence Context flushing up until the last possible moment. This strategy has been traditionally known as transactional write-behind.
Hibernate EhCache configuration tutorial
Caching is facility provided by ORM frameworks which help users to get fast running web application, while help framework itself to reduce number of queries made to database in a single transaction. Hibernate also provide this caching functionality, in two layers. In this tutorial, I am giving an example using ehcache configuration as second level cache in hibernate.
Hibernate hidden Gem: the pooled-lo optimizer
Hibernate offers a new class of identifier generators, addressing many shortcomings of the original ones. The enhanced identifier generators don’t come with a fixed identifier allocation strategy. The optimization strategy is configurable and we can even supply our own optimization implementation. By default Hibernate comes with the following built-in optimizers:
What is hibernate in Java? This tutorial will explain how to Hibernate.