Java 坎恩';t从DB hql检索项目
有此代码:Java 坎恩';t从DB hql检索项目,java,hibernate,Java,Hibernate,有此代码: Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); Query query = session.createQuery("from DBUser where id=1"); for(Iterator it=query.iterate();it.hasNext();){ Object[] row = (Object[])
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("from DBUser where id=1");
for(Iterator it=query.iterate();it.hasNext();){
Object[] row = (Object[]) it.next();
System.out.println("ID: " + row[0]);
System.out.println("Name: " + row[1]);
System.out.println("Amount: " + row[2]);
}
出现错误:java.lang.ClassCastException:com.mycompany.app.DBUser无法强制转换为[Ljava.lang.Object;
可能有更简单的方法从表中检索单个元素?hql在本例中返回映射类型。您的代码应该如下所示:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("from DBUser where id=1");
for(Iterator it=query.iterate();it.hasNext();){
DBUser row = (DBUser) it.next();
System.out.println("ID: " + row.getId());
System.out.println("Name: " + row.getName());
System.out.println("Amount: " + row.getAmount());
}