【发布时间】:2012-03-20 00:52:14
【问题描述】:
我正在使用以下查询从休眠中的 db 获取数据
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query q = session.createSQLQuery("select name,addr1,addr2,postal_code,country,email," +
"tel1,tel2,HeadOffice_id,Subscription_id from Restaurant " +
"where id=" +id);
session.getTransaction().commit();
Restaurant rest = (Restaurant)result.get(0);
但这是返回异常
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.hibernate.model.Restaurant
我也试过这种方法,不知道在做什么
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass(Restaurant.class);
SessionFactory factory= config.configure().buildSessionFactory();
Session session =factory.getCurrentSession();
session.beginTransaction();
Query q = session.createSQLQuery("select name,addr1,addr2,postal_code,country,email," +
"tel1,tel2,HeadOffice_id,Subscription_id from Restaurant " +
"where id=" +id);
java.util.List<Restaurant> result = (List<Restaurant>)q.list();
session.getTransaction().commit();
Restaurant rest = (Restaurant)result.get(0);
我又遇到了同样的异常。我怎么能用休眠来做到这一点?
谢谢
【问题讨论】:
-
它说它不能将
Object[]转换为Restaurant,可能是因为您选择了餐厅的个别属性 -
对不起,你能解释一下吗?谢谢
标签: java hibernate hql sessionfactory