JPA Count Function

In this section, you will learn about the count
function of JPA aggregate function. JPA Count function counts all records to
database table.
JPA Count Function:
| Query query=em.createQuery("SELECT
COUNT(p.itemName) FROM Product p"); |
This query gives total number of record to the database
table. It returns a single numeric result.
Developing this application, you need the following
artifacts:
- Database Table: product
- Model Class: Product.java
- Main Class: JPACountFunction.java
Database Table: product
CREATE TABLE `product` (
`id` int(11) NOT NULL auto_increment,
`itemName` varchar(50) NOT NULL,
`price` double NOT NULL,
PRIMARY KEY (`id`)
) |
Model Class: Product.java
/**
*
*/
package roseindia;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author Administrator
*
*/
@Entity
@Table(name="product")
public class Product {
@Id
@GeneratedValue
private int id;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
@Column(name="itemName",length=50,nullable=false)
private String itemName;
/**
* @return the itemName
*/
public String getItemName() {
return itemName;
}
/**
* @param itemName the itemName to set
*/
public void setItemName(String itemName) {
this.itemName = itemName;
}
@Column(name="price")
private double price;
/**
* @return the price
*/
public double getPrice() {
return price;
}
/**
* @param price the price to set
*/
public void setPrice(double price) {
this.price = price;
}
}
|
Main Class: JPACountFunction.java
/**
*
*/
package roseindia;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
/**
* @author Administrator
*
*/
public class JPACountFunction {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
EntityManagerFactory emf=Persistence.createEntityManagerFactory("jpa");
EntityManager em=emf.createEntityManager();
try{
EntityTransaction entr=em.getTransaction();
entr.begin();
Query query=em.createQuery("SELECT COUNT(p.itemName) FROM Product p");
Number countResult=(Number) query.getSingleResult();
System.out.println("Count result:"+countResult);
entr.commit();
}
finally{
em.close();
}
}
}
|
Output:
|
log4j:WARN No appenders could be
found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the
log4j system properly.
Hibernate: select count(product0_.itemName) as col_0_0_
from product product0_
Count result:4
|

|