我正在尝试创建一种方法,该方法将接受用于构建 JPA Criteria 对象的泛型。
目前的方法是
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();
}
我想要的是这样的,
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();
}
使用 java 泛型可以实现这一点吗?
最佳答案
应该可以这样:
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();
}
关于java - 将泛型与 JPA 标准结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045782/