what i need is to run a sql query something like :
select * from table where alpahbetcolumn="A" and numbercolumn="10" and shelfcolumn="upper";
i want to know how to do this query in hibernate using EntityManager
currently this is my own try out, but not working....
@PersistenceContext
EntityManager em;
@Transactional
public List<Item> listItems(String alpahbet, String number, String shelf) {
CriteriaQuery<Item> c = em.getCriteriaBuilder().createQuery(Item.class);
c.from(Item.class);
c..where( em.equal( alpahbet, "alpahbetcolumn" ) && em.equal( number, "numbercolumn" ) && em.equal( shelf, "shelfcolumn" ));
return em.createQuery(c).getResultList();
}
i only have a very vague understanding on spring hibernate topic..still learning... can someone please point me out how to do this sql query properly, with code example. thanks
i have worked out using criteriaquery to fullfill my needs, here is the code. it works
@Transactional
public List<Item> listItems(String alpahbet, String number, String shelf) {
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Item> criteriaQuery = criteriaBuilder.createQuery(Item.class);
Root<Item> itemRoot = criteriaQuery.from(Item.class);
criteriaQuery.select(itemRoot).where(criteriaBuilder.equal(itemRoot.get("alpahbetField"), alpahbet), criteriaBuilder.equal(itemRoot.get("numberField"), number), criteriaBuilder.equal(itemRoot.get("shelfField"), shelf));
return em.createQuery(criteriaQuery).getResultList();
}