Reputation: 1129
I'm trying to create a method that will accept a generic for building a JPA Criteria Object.
Currently, the method is
public List<Table> getTopLevelItems() throws Exception
{
EntityManagerAC em = JPABase.createElementEntityManager();
Criteria<Table> criteria =
new Criteria<Table>(em, Table.class);
criteria.addEquals("levelNum", "1");
return criteria.search();
}
What I want is something like,
public List<?> getTopLevelItems(Class clazz) throws Exception
{
EntityManagerAC em = JPABase.createElementEntityManager();
Criteria<clazz> criteria = new Criteria<clazz>(em, clazz.getClass());
criteria.addEquals("levelNum", "1");
return criteria.search();
}
Is this possible using java generics?
Upvotes: 0
Views: 449
Reputation: 16041
It should be possible somehow like this:
public <T> List<T> getTopLevelItems(Class<T> clazz) throws Exception
{
EntityManager em = JPABase.createElementEntityManager();
Criteria<T> criteria = new Criteria(em, clazz.getClass());
criteria.addEquals("levelNum", "1");
return criteria.search();
}
Upvotes: 2