如何从HQL查询结果中得到某列的属性名? 就类似于SQL中我可以根据 ResultSet.getMetaData().getColumnName() 中得到结果表的各列属性名,HQL有没类似的函数?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【qiaozhizhong】截止到2008-07-18 09:42:54的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:100                      每贴平均分数:50                       
    回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:100                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:50.00 %               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    HQL本来就是面向对象的,
    你会不知道对象中的属性?
    实在不行用反射吧。。
      

  3.   

    List<Objdect[]> list=session.createQuery("select userName,pwd from Users").list;
      

  4.   

    hql是面向对象的,只能知道类里的属性名。不知道具体sql里的属性名吧。
    除非设置成一样的名称。
      

  5.   

    private static Configuration hibernateConf; private static Configuration getHibernateConf() {
    if (hibernateConf == null) {
    // return new Configuration().configure();
    return new Configuration();
    }
    return hibernateConf;
    } @SuppressWarnings("unchecked")
    private static PersistentClass getPersistentClass(Class clazz) { synchronized (HibernateUtils.class) {
    PersistentClass pc = getHibernateConf().getClassMapping(
    clazz.getName()); if (pc == null) {
    hibernateConf = getHibernateConf().addClass(clazz);
    pc = getHibernateConf().getClassMapping(clazz.getName());
    }
    return pc;
    }
    }/**
     * 通过实体类和属性,获取实体类属性对应的表字段名称
     * 
     * @param clazz
     *            实体类
     * @param propertyName
     *            属性名称
     * @return 字段名称
     */
    @SuppressWarnings("unchecked")
    public static String getColumnName(Class clazz, String propertyName) {
    PersistentClass persistentClass = getPersistentClass(clazz);
    Property property = persistentClass.getProperty(propertyName);
    Iterator it = property.getColumnIterator();
    if (it.hasNext()) {
    Column column = (Column) it.next();
    return column.getName();
    }
    return null;
    }
      

  6.   

    Hibernate的主要功能就是隐藏数据库的细节
    不过应该有接口支持这种功能