Sample search query using jpa paremeters + TypedQuery and inheriting the common crud operations
package com.project.dao;
import java.util.List;
import javax.persistence.TypedQuery;
import org.springframework.stereotype.Repository;
import com.project.model.Item;
@Repository
public class ItemDao extends GenericDao<Item> {
public List<Item> findByDesc(String term){
TypedQuery<Item> query = entityManager.createQuery(
"SELECT i FROM Item i WHERE i.description LIKE :term",
Item.class
);
query.setParameter("term", "%"+term+"%");
return query.getResultList();
}
public List<Item> findByPrice(Double min, Double max){
TypedQuery<Item> query = entityManager.createQuery(
"SELECT i FROM Item i WHERE i.price > :min and i.price < :max",
Item.class
);
query.setParameter("min", min);
query.setParameter("max", max);
return query.getResultList();
}
}