HIBERNATE HQL返回值的提取

问题描述

String hql = "select d.div,d.div_desc from DivTbl d where div='0013'";Object o=(Object)getHibernateTemplate().find(hql);执行结果返回值为 Ljava.lang.Object如果是返回一个字段 如:d.div 可以(String) 强制转换成string但是返回两个字段、就不知道怎么转换了?返回recordset呢?请各位帮忙!谢谢! 问题补充:kxys422834 写道

解决方案

建一个实体类,其中有div_desc和div着两个字段, 然后用这个类接收就好了啊。把object转成这个试题类型就ok了嘛!
解决方案二:
引用两个STRING都是返回的字段值 这样做行么?
解决方案三:
引用返回一百个STRING也没问题 如果返回的类型都是 String 的话,你这么做是OK的哇
解决方案四:
引用假设一个工程需要各种各样查询我不可能建许多临时的ENTITY我作了一个类public List<Map<String,String>> findBySql(String hql) {return (List<Map<String,String>>)getHibernateTemplate().getSessionFactory().openSession().createSQLQuery(hql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();}根据SQL返回LIST灵活多了 万一到时候需要你返回三个STRING的值回来呢?
解决方案五:
这个么有办法,你只能根据你自己想要得到的数据类型来转换它。LS说的也是这个意思其实。

时间: 2024-08-01 20:07:40

HIBERNATE HQL返回值的提取的相关文章

方法-getHibernateTemplate().find(hql)返回值及引用传值问题

问题描述 getHibernateTemplate().find(hql)返回值及引用传值问题 //StudentDAO中的方法 public boolean getPoList(String hql, List poList){ boolean result = false; try{ poList = getHibernateTemplate().find(hql); result = true; }catch(Exception ex){ ex.printStackTrace(); } r

hibernate 存储过程返回值问题

问题描述 配置文件如下:<sql-queryname="getMergeableOrder"read-only="true"><returnclass="Order"alias="order"/><return-joinalias="ordresMerchandises"property="order.OrdresMerchandises"/><

求助: Hibernate如何没有列名的存储过程返回值

问题描述 Hibernate如何没有列名的存储过程返回值.我在数据库(informix)里用存储过程读取数据并返回值,但都没有列名.然后用Hibernate的执行原生sql语句的方法读取:===========================================...StringsqlProc="{callproc('2')}";session.createSQLQuery(sqlProc).addEntity(MyMapping.class).list();...====

在hql下用数据库函数的时候,返回值的处理方式

问题描述 先看代码getHibernateTemplate().find("select c.id,c.name,count(t.id) from Classes c inner join Student t group by c.id,c.name");这段代码返回值的是List<Object[]>,而我现在在dao和service没有做处理就直接返回了....现在好多地方都用到类似的查询,而返回的是数组不是实体对象,所以在action或页面中取的时候很麻烦(有时候字段多

Object转Integer类型失败,转Long型可以,方法返回值为1,并没有超过两个类型的范围

问题描述 Object转Integer类型失败,转Long型可以,方法返回值为1,并没有超过两个类型的范围 在网上找的尚硅谷的教学视频 其中有添加权限一段 String hql="select count(*) from Right r where r.rightUrl=?"; //此处不能用integer只能Long Long count=(Long) this.uniqueResult(hql, url); System.out.println(count); 下面是uniqueR

mysql-MYSQL游标REPEAT循环后,无法得到字符串返回值。望指教,谢谢!

问题描述 MYSQL游标REPEAT循环后,无法得到字符串返回值.望指教,谢谢! 我有一个数据表zq +-------+--------+--------------+---------+---------+--------+---------+ | zq_id | zq_dm | zq_mc | zqlx_id | fllx_id | jys_id | zq_cxhq | +-------+--------+--------------+---------+---------+--------

一个类如何实现两个接口中同名同参数不同返回值的函数

假设有如下两个接口: public interface IA{    string GetA(string a);}public interface IB{    int GetA(string a);} 他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class X:IA,IB 由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该

nodejs如何将数据返回给前端的post请求,在浏览器preview能看到返回值

问题描述 nodejs如何将数据返回给前端的post请求,在浏览器preview能看到返回值 前端使用ajax请求post方法请求nodejs服务.nodejs如何将数据返回给前端,并且在浏览器的preview中能得到,新手,在线急等

字符串-一个很基础的返回值问题

问题描述 一个很基础的返回值问题 想要打印字符串数组,去掉中间的空格和Tab,并且删除全为空的行,哪里有错?谢谢. #include #define MAXLINE 1000 int getline(char line[], int maxline); int copy(char to[],char from[]); int main(){ int len; int max; char line[MAXLINE]; max=0; while ((len=getline(line,MAXLINE)