使用Entity Manager和JPA,仅返回对象



当我运行以下代码时,它仅返回对象列表。我想要车辆中的清单。我的代码中有什么错误?

我的dao课是:

public class VehicleDao {
HibernateTemplate template;  
private EntityManager emManager;
@PersistenceContext
public void setEm(EntityManager emManager) {
    this.emManager = emManager;
}
public List<Vehicle> getVehicleDataUsing_Sp()
{
Properties prop= new Properties();
    try {
        InputStream input = new FileInputStream("E:\spring4AndHibernate5\src\Query.properties");
        prop.load(input);
        Query query = emManager.createNativeQuery(prop.getProperty("vehicleQuery"));
        List<Vehicle> list = query.getResultList();
        return list;
        }
}

您要么需要在本机查询定义中定义结果类(使用定义命名查询的 resultClass=Vehicle.class(

和/或

使用CreateNamedQuery(使用createNativeQuery(prop.getProperty("vehicleQuery"), Vehicle.class)(时,您需要映射本机类。

当您指定返回类型为 void时,您无法返回List<Vehicle>

而是尝试一下:

public List<Vehicle> getVehicleDataUsing_Sp()

,您还需要在try块之后添加catch块,例如:

catch(Exception e)
{
}

因为它是本地查询,除非您告诉它,否则它不知道该尝试映射什么。

尝试:

Query query = emManager.createNativeQuery(prop.getProperty("vehicleQuery"), Vehicle.class);

最新更新