不兼容的类型;found: interface java.util.List<java.lang.Object>, required: interface java.util.List&l



>我有以下类结构

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

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

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

最新更新