2014-11-20 158 views
0

我試圖創建一個方法來接受構建JPA標準對象的泛型。在JPA標準中使用泛型

目前,該方法是

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泛型?

回答

2

它應該能夠以某種方式是這樣的:

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();  
}