在下面的代码中,我试图获得一个包含数据库中所有产品的产品列表:
public List<Products> getAllProducts() throws Exception{
try{
List<Products> products ;
org.hibernate.Transaction tx = session.beginTransaction();
products = session.createSQLQuery("SELECT * FROM Products").list();
if(products.size() > 0)
{
return products;
}
return null;
}
catch(Exception e)
{
throw e;
}
}
Run Code Online (Sandbox Code Playgroud)
但抛出此异常:
[Ljava.lang.Object; cannot be cast to mediatek.Products
Run Code Online (Sandbox Code Playgroud)
Ram*_*tha 38
List<Products> list = session.createCriteria(Products.class).list();
Run Code Online (Sandbox Code Playgroud)
这将为您提供数据库中产品表的所有记录
您的答案不仅会添加强制转换,还会从SQL切换到HQL.由于您的第二个查询是在HQL中,Hibernate能够使用映射信息来知道要返回的类.这是在Hibernate中执行操作的首选方法,但如果由于某种原因必须使用SQL,则可以通过以下方式实现相同的功能:
(List<Products>)session.createSQLQuery("SELECT * FROM Products").addEntity(Products.class).list();
Run Code Online (Sandbox Code Playgroud)
忘记输入强制转换查询。现在正在工作。
List<Products> products = (List<Products>) session.createQuery("from Products").list();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61243 次 |
| 最近记录: |