使用java JPQL从atable检索所有记录

使用java JPQL从atable检索所有记录,java,jpql,Java,Jpql,我试图使用JPQ编写一个简单的查询来检索表中的所有行。我相信我已经正确地设置了实体以及持久化单元,因为在部署模块时成功地创建了表。我的问题是,当我试图从表中检索任何内容时,它都不起作用 我的EJB中检索行的代码如下所示: @Override public List<Car> getAllCars() throws Exception { return entityManager.createNamedQuery(Car.GET_ALL_QUERY_NAME)

我试图使用JPQ编写一个简单的查询来检索表中的所有行。我相信我已经正确地设置了实体以及持久化单元,因为在部署模块时成功地创建了表。我的问题是,当我试图从表中检索任何内容时,它都不起作用

我的EJB中检索行的代码如下所示:

@Override
public List<Car> getAllCars() throws Exception 
{        
    return entityManager.createNamedQuery(Car.GET_ALL_QUERY_NAME).getResultList();
}
    try
    {/*
        String[] test = new String[7];
        test[0] = "test";
        test[1] = "test";
        test[2] = "test";
        test[3] = "test";
        test[4] = "test";
        test[5] = "test";
        test[6] = "test";
        main.getCarScreen().getModel().addRow(test);
        System.out.println("test");*/

        List<Car> cars = carRepo.getAllCars();
        for(Car car : cars)
        {//"VIN", "Model Number", "Model Name", "Make", "Thumbnail", "Description", "URL"
            String[] data = new String[7];
            data[0] = car.getVIN();
            data[1] = car.getModelNo();
            data[2] = car.getModel();
            data[3] = car.getMake();
            data[4] = car.getThumbnail();
            data[5] = car.getDesc();
            data[6] = car.getPrevURL();
            main.getCarScreen().getModel().addRow(data);
        }
    }
    catch(Exception ex)
    {
        main.getCarScreen().outputAddError(ex.getMessage());
        System.out.println("failed");
        System.out.println(ex.getMessage());
    }
我确认表中有数据:

异常消息是一个简单的null这一事实使我相信代码正在工作,但表中没有可检索的内容。当我检查表数据时,我的测试数据仍然存在

有人知道为什么检索不到任何行吗

[更新]

因此,我将carRepo.getAllCars()更改为ex.printStackTrace();它确实是一个空指针异常。堆栈跟踪:

java.lang.NullPointerException
at CarSales.CarSales.displayAllCars(CarSales.java:55)
at CarSales.CarSales.run(CarSales.java:35)
at CarSales.Main.main(Main.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446)
at org.glassfish.appclient.client.AppClientFacade.launch(AppClientFacade.java:183)
at org.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65)
CarSales.java:55是一条线

List<Car> cars = carRepo.getAllCars()
List cars=carRepo.getAllCars()

我对JPQL非常陌生,我不知道是什么导致了这一点

停止捕获异常。或者至少替换
System.out.println(例如getMessage())通过
例如printStackTrace()。您可能有一个NullPointerException,堆栈跟踪将告诉您它发生在哪里。请参阅-
carRepo
未设置。我建议不要使用
ex.printStackTrace()在这里您可以了解更多信息。我想你的问题可以通过指出你的carRepo是空的来解决?
List<Car> cars = carRepo.getAllCars()