使用hibernate查询product的结果为Object, 并且不能转为Product
来源:互联网 发布:阿里云ecs传文件 编辑:程序博客网 时间:2024/05/16 09:26
使用hibernate查询product的结果为Object, 并且不能转为Product。
版本:hibernater-5.2.6
错误代码:
public List<Product> findByPage(Integer cid, Integer begin, Integer countInPage) {List<Product> products = (List<Product>) this.getHibernateTemplate().execute(new HibernateCallback<List<Product>>() {@Overridepublic List<Product> doInHibernate(Session session) throws HibernateException {Query query = session.createQuery("from Product p join p.categorySecond cs join cs.category c where c.cid=?");query.setFirstResult(begin);query.setMaxResults(countInPage);query.setParameter(0, cid);return query.getResultList();}});return products;}
若改为Query<Product> query = session.createQuery("from Product p join p.categorySecond cs join cs.category c where c.cid=?",Product.class);
则报错:Cannot create TypedQuery for query with more than one return
从stackoverflow中查得如下答案:
Without goind into details about how Media
and Book
should be modeled, I will at least explain why you get this exception.
You're doing:
em.createQuery(someJPQL, Media.class);
This means: create a query using someJPQL
, and this query will return instances of theMedia
entity.
But your JPQL
is:
SELECT m.title, b.isbn, b.authors ...
So the query does not return entities of type Media. It returns three fields, from two different entities. There is no way your JPA engine could magically create instances of Media from these 3 columns. A query would return instances of Media if it looked like this:
select m from Media m ...
最后将代码改为如下,解决问题。
Query<Product> query = session.createQuery("select p from Product p join p.categorySecond cs join cs.category c where c.cid=?",Product.class);//或 Query<Product> query = session.createQuery("select p from Product p join p.categorySecond cs join cs.category c where c.cid=?");
0 0
- 使用hibernate查询product的结果为Object, 并且不能转为Product
- Hibernate(HQL/SQL)查询结果(Object)转换为实体类型
- product
- Product
- Product
- Product
- Product
- 遇到的不能刷新Product Flat Data
- mysql将查询结果为空的栏目转为0
- not in 不能使用在子查询结果为null
- Hibernate将sql查询结果中字符转为char类型的原因
- Hibernate执行原生sql将查询结果直接转为VO
- hibernate查询结果转为实体类 数组越界报错
- Product Backlog的理念
- magento更新scope为website的product attribute
- hibernate复合主键查询主键不能为空的解决方案
- hibernate复合主键查询主键不能为空的解决方案
- hibernate中文查询 结果为空
- SPOJ INTSUB
- 维特比算法
- 用反射Gray码的顺序生成0,1的n元组的算法
- 怎么在office2007中把Word转换为PDF
- java中static和final
- 使用hibernate查询product的结果为Object, 并且不能转为Product
- Java中的流
- Word里调用数学编辑器
- flask 学习之路(二) 程序的基本结构
- java中几类权限修饰符的区别
- Java中重载和重写的区别
- Java中的接口
- java 中StringBuffer
- java 中的数组