5

当我有以下查询时,它会给我一个产品列表。

List<Product>=

getCurrentSession().createQuery("SELECT p FROM Product p ").list();

当有如下连接时它会返回什么。

getCurrentSession().createQuery("SELECT p FROM Product p inner join ProductCategory pc where p.id=pc.id").list();
4

5 回答 5

5

结果应该返回List<Object[]>。请看这个线程

你应该访问你的实体,比如

for (Object[]> result : query.list()) {
    Product p = (Product) result[0];
    ProductCategory pc = (ProductCategory) result[1];
}
于 2013-05-02T05:13:55.770 回答
4

SELECT p FROM Product p inner join ...类似的东西会给你一个Products列表。

FROM Product p inner join ...类似的东西会给你一个数组列表。

于 2013-05-02T05:06:12.670 回答
1

这将返回一个list对象。您将不得不将它们投入到Product

List list = session.createQuery("SELECT p FROM Product p inner 
                      join ProductCategory pc where p.id=pc.id").list();
于 2013-05-02T05:04:52.113 回答
0

根据 javax.persistence.Query 的文档,您将获得一个 List。为什么你认为它应该不同?

于 2013-05-02T05:06:45.350 回答
0

此类从 java.lang.object 转换为模型类在任何情况下都不起作用。下面是我的代码。

List<Contactinfo> listStudentInfo = new ArrayList<Contactinfo>();                    
                         //listStudentInfo = dataService.getAllStudent(studentInfo);
                         listStudentInfo = dataService.getStudentInfo();
                         System.out.println(listStudentInfo.size()); 
                         Contactinfo contactinfo = (Contactinfo)listStudentInfo.get(0);

但是在休眠中,如果您同时拥有通过@Many-to-one 或@One-to-one 连接注释关联的实体,则不需要连接。然后您只需要选择一个对象,您将自动通过连接访问其他对象。确保为加入字段保留 getter()、setter() 方法。希望这将澄清情况。

于 2016-06-24T09:53:24.127 回答