EclipseLink错误:异常描述:缺少类的描述符

时间:2012-01-15 19:11:00

标签: java spring jpa persistence eclipselink

我只想用EclipseLink创建一个简单的本机查询,但我无法使其工作

    @Repository("CarsRepository")
public class JpaCarsRepository {

    @PersistenceContext 
    private EntityManager em;

    public List<Car> getCars(){
     Query q=em.createNativeQuery("SELECT id,name_car FROM CARS",Car.class);
     List<Car> results=q.getResultList();

我的'Car'类被定义为@Entity。 (我的persistence.xml只有基本的连接设置)我得到类'Car'的'Missing descriptor'错误。

为什么会这样?我看到similar question没有帮助我。

第二个问题:

如果我没有指定'createNativeQuery'函数的第二个参数(Car.class),它会返回一个对象列表,所以我可以看到 results.get(0)的值是[ 1车]。我可以遍历对象列表。所以,如果

Object o=results.get(0)

我可以手动创建Car对象,但我不知道如何获取对象的第一个值,如果我打印o [0]得到对象的值1(这是[1 car])我得到的以下错误表达式的类型必须是数组类型,但已解析为对象

我如何访问对象的每个值?

1 个答案:

答案 0 :(得分:2)

它不认为Car是实体,看起来没有扫描。在persistence.xml中的class-element中列出你的实体会有帮助吗?

第二次尝试返回对象数组列表。要访问值,您必须首先将结果集的一行转换为Object array:

Object[] o=results.get(0)
//types below are just guessed:
Integer id = o[0];
String name = o[1];