Java Reference
In-Depth Information
getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return getEntityManager().createQuery(cq).getResultList();
}
public List<T> findRange(int[] range) {
javax.persistence.criteria.CriteriaQuery cq =
getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
javax.persistence.Query q =
getEntityManager().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
public int count() {
javax.persistence.criteria.CriteriaQuery cq =
getEntityManager().getCriteriaBuilder().createQuery();
javax.persistence.criteria.Root<T> rt = cq.from(entityClass);
cq.select(getEntityManager().getCriteriaBuilder().count(rt));
javax.persistence.Query q =
getEntityManager().createQuery(cq);
return ((Long) q.getSingleResult()).intValue();
}
}
As we can see, AbstractFacade has an entityClass variable that gets set to the
appropriate type via generics by its child classes. It also has methods to create, edit,
remove, find, and count entities. The body of these methods is standard JPA code
and should be familiar by now.
As we mentioned earlier, the wizard generates a Facade for each generated
JPA entity, in this example we picked a single table ( CUSTOMER ), therefore a
single JPA entity was created, the Facade class for this JPA entity is called
CustomerFacadeRest .
package com.ensode.netbeansbook.jaxrs.service;
import com.ensode.netbeansbook.jaxrs.Customer;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
 
Search WWH ::




Custom Search