HibernateTemplate 查询原生sql及ljava.lang.object cannot be cast to

2023-05-16编程技术263422

         /**
         * 使用sql语句进行查询操作
         * @param sql
         * @return
         */
        public List queryWithSql(final String sql){
            List list = hibernateTemplate.executeFind(new HibernateCallback() {
                public Object doInHibernate(Session session) throws HibernateException,
                        SQLException {
                    Query query = session.createSQLQuery(sql);
                    List list = query.list();
                    return list;
                }
            });
            return list;
        }  

调用上面的queryWithSql就可以返回查询的结果。

但是

List<Student> list=dao.queryWithSql("select * from stuendt where age>15");

如果直接

list.get(0).getName();

会报Ljava.lang.Object 无法转换成Student异常。

其实 dao.queryWithSql("select * from stuendt where age>15");

的返回结果是个二维object数组!!

按下面的例子来:

List models=utilDAO.queryWithSql(sql);
for (int i = 0; i < models.size(); i++) {
    Object[] obj = (Object[]) models.get(i);
    System.out.println(obj[0]);
    System.out.println(obj[1]);
    System.out.println(obj[2]);
}

里面有你想要的结果。

参考资料

http://blog.csdn.net/woshisap/article/details/6743404

http://blog.csdn.net/goodleiwei/article/details/7059567

HibernateTemplate 查询原生sql及ljava.lang.object cannot be cast to的相关教程结束。

本文地址:https://www.ufcn.cn/tutorials/2644407.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!