Book Image

Java Hibernate Cookbook

By : Yogesh Prajapati, Vishal Ranapariya
Book Image

Java Hibernate Cookbook

By: Yogesh Prajapati, Vishal Ranapariya

Overview of this book

This book will provide a useful hands-on guide to Hibernate to accomplish the development of a real-time Hibernate application. We will start with the basics of Hibernate, which include setting up Hibernate – the pre-requisites and multiple ways of configuring Hibernate using Java. We will then dive deep into the fundamentals of Hibernate such as SessionFactory, session, criteria, working with objects and criteria. This will help a developer have a better understanding of how Hibernate works and what needs to be done to run a Hibernate application. Moving on, we will learn how to work with annotations, associations and collections. In the final chapters, we will see explore querying, advanced Hibernate concepts and integration with other frameworks.
Table of Contents (15 chapters)
Java Hibernate Cookbook
About the Authors
About the Reviewers

Performing aggregate operations

Next to the common SQL databases, hibernate allows us to perform an aggregate operation using a hibernate API. We can perform an aggregation operation such as sum, avg, min, max, count, and so on.

We will discuss the use of some aggregate functions by example.

Getting ready

To perform an aggregation operation, we will consider a predefined table structure with the data so that it's easy to understand how the aggregate functions work.

The predefined table and class structure we mentioned earlier can be found in two different classes, product and category, with their relationship. The following code and script can be used to create a Java class and a database table.

Creating the tables

Use the following script to create the tables if you are not using hbm2dll=create|update:

Use the following code to create the category table:

CREATE TABLE `category` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `created_on` datetime DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL...