Java 使用具有JPA标准的泛型
我正在尝试创建一个方法,该方法将接受用于构建JPA Criteria对象的泛型 目前,该方法是Java 使用具有JPA标准的泛型,java,generics,jpa,Java,Generics,Jpa,我正在尝试创建一个方法,该方法将接受用于构建JPA Criteria对象的泛型 目前,该方法是 public List<Table> getTopLevelItems() throws Exception { EntityManagerAC em = JPABase.createElementEntityManager(); Criteria<Table> criteria = new Criteria<Table>(
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 getTopLevel Items()引发异常
{
EntityManagerAC em=JPABase.createElementEntityManager();
标准=
新标准(em、表格、类别);
标准。附录(“levelNum”、“1”);
返回条件。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();
}
public List gettoplavelitems(类clazz)引发异常
{
EntityManagerAC em=JPABase.createElementEntityManager();
Criteria=新标准(em,clazz.getClass());
标准。附录(“levelNum”、“1”);
返回条件。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();
}
public List gettoplavelitems(类clazz)引发异常
{
EntityManager em=JPABase.createElementEntityManager();
Criteria=新标准(em,clazz.getClass());
标准。附录(“levelNum”、“1”);
返回条件。search();
}