Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用具有JPA标准的泛型_Java_Generics_Jpa - Fatal编程技术网

Java 使用具有JPA标准的泛型

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>(

我正在尝试创建一个方法,该方法将接受用于构建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 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();
}