不兼容的类型; found:interface java.util.List <java.lang.object>,required:interface java.util.List <test.entity.emp> </test.entity.emp> </java.lang.object>

时间:2014-12-06 09:43:38

标签: java jpa jpa-2.0

我有以下类结构

public class Emp implements java.io.Serializable {

....

}

public interface EmployeeDAO  {

 public List<Emp> findAllEmployees();

}

public class EmployeeDAOImpl  implements EmployeeDAO {

    public List<Emp> findAllEmployees() {
        CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
        cq.select(cq.from(Emp.class));
        return getEntityManager().createQuery(cq).getResultList();
    }
...

}

我遇到的问题是

return getEntityManager().createQuery(cq).getResultList();

以上行给出了以下错误,原因可能是什么?

incompatible types; found: interface java.util.List<java.lang.Object>, 
required: interface java.util.List<test.entity.Emp>

相同的代码适用于其他更高版本的Java。 我目前的JDK是1.6

1 个答案:

答案 0 :(得分:4)

您没有告诉CriteraQuery它将返回哪种类型。

public List<Emp> findAllEmployees() {
    CriteriaQuery<Emp> cq = getEntityManager().getCriteriaBuilder().createQuery(Emp.class);
    cq.select(cq.from(Emp.class));
    return getEntityManager().createQuery(cq).getResultList();
}