JPA Avg Function
In this section, you will learn the avg of aggregate function. This method calculate an average of given data.
JPA Avg() function:
| Query query=em.createQuery ("SELECT p FROM Product p WHERE p.price > (SELECT AVG(p.price) FROM p)"); |
This query select all records from the product table which have the product price is grater than the average of product price.
For this application, you need the following artifacts:
- Database Table: product
- Model Class: Product.java
- Main Class: JPAAvgFunction.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: JPAAvgFunction.java
/**
*
*/
package roseindia;
import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
/**
* @author Administrator
*
*/
public class JPAAvgFunction {
/**
* @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 p FROM Product p WHERE p.price > (SELECT AVG(p.price) FROM p)");
List pList=query.getResultList();
Iterator pIterator=pList.iterator();
while(pIterator.hasNext()){
Product pro=(Product)pIterator.next();
System.out.print("Item Name:"+pro.getItemName());
System.out.print(" Price:"+pro.getPrice());
System.out.println();
}
entr.commit();
}
finally{
em.close();
}
}
}
Output:
|
log4j:WARN No appenders could be
found for logger log4j:WARN Please initialize the log4j system properly. Hibernate: select product0_.id as id1_, product0_.itemName Item Name:Mobile Price:8000.0 Item Name:T.V. Price:6000.0
|


