【问题标题】:Pass class to another method将类传递给另一个方法
【发布时间】:2015-11-02 04:53:46
【问题描述】:

我正在调用一个名为 SimpleCriteria 的方法并传递员工类

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

【问题讨论】:

    标签: java jpa jpa-2.0 criteria-api


    【解决方案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);
    }
    

    【讨论】:

    • 谢谢,我会试试这个方法。
    猜你喜欢
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多