2015-11-02 3 views
0

я звоню метод, называемый SimpleCriteria и передавая Сотрудники классаPass класса к другому методу

empDAOImpl.SimpleCriteria(getEntityManager(),Employee.class); 

В методе SimpleCriteria Как я мог бы использовать класс Employee? Я пробовал как classEntity, но это не помогло. Каков правильный способ передачи класса другому методу?

public void SimpleCriteria(EntityManager entityManager, Class<T> 
    classEntity)throws InstantiationException,IllegalAccessException{ 

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); 
    CriteriaQuery<classEntity> criteriaQuery = 
    criteriaBuilder.createQuery(classEntity);  

ответ

1

Вам не нужен общий. Вы можете просто использовать classEntity ниже

public void SimpleCriteria(EntityManager entityManager, Class 
      classEntity)throws InstantiationException,IllegalAccessException { 

     CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); 
     CriteriaQuery criteriaQuery = 
       criteriaBuilder.createQuery(classEntity); 
    } 

Вам нужно родовое, если вы возвращаете CriteriaQuery, как показано ниже

public <T> CriteriaQuery<T> SimpleCriteria(EntityManager entityManager, Class<T> 
     classEntity)throws InstantiationException,IllegalAccessException { 

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); 
    return criteriaBuilder.createQuery(classEntity); 
} 
+0

Спасибо, я попробую этот подход. – user75ponic