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
| 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
|
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: JPA Count Function
Post your Comment