gpt4 book ai didi

java - EclipseLink 错误 : Exception Description: Missing descriptor for class

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:48 32 4
gpt4 key购买 nike

我只想用 EclipseLink 做一个简单的 native 查询,但我做不到

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

我的“汽车”类定义为@Entity。 (我的 persistence.xml 只有基本的连接设置)我收到类“汽车”的“缺少描述符”错误。

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

第二个问题:

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

Object o=results.get(0)

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

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

最佳答案

它不将 Car 视为实体,看起来它没有被扫描。在 persistence.xml 中的类元素中列出您的实体有帮助吗?

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

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

关于java - EclipseLink 错误 : Exception Description: Missing descriptor for class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872510/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com