我只想用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])我得到的以下错误表达式的类型必须是数组类型,但已解析为对象
我如何访问对象的每个值?
答案 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];