调了半天,都不行,非得 select {别名.*} from t ,否则就报错!我是想这样:select {t.a},{t.b} from table {t},而不想全部都查出来。我在.hbm.xml里配置<sql-query>,指定<return-property>也不行!要怎么搞呀?难道真的只能全部查出来?

解决方案 »

  1.   

    hql才强制使用别名的啊.
    记得hiber掉sql要用createSQLQuery()之类的方法,方法名有显著区别,不会用错方法了吧.
      

  2.   

    当然是用createSQLQuery()啦。报的错是org.hibernate.exception.SQLGrammarException: could not execute query
    求知道的朋友写一段正确的只查其中几个字段的原生SQL出来
      

  3.   

    在你的hibernate配置文件内写入这个
    <property name="hibernate.show_sql">true</property> 
    看看控制台输出什么了,然后再找其他的问题。
      

  4.   

    用HQL查询啊。select a,b,c from user;
    得到Object[]数组,然后才取出就行了啊。
      

  5.   

    可用自定制的构造方法来实现:
    public class Domain{
    private String field_a;
    private String field_b;
    private String field_c;
    private String field_d;
    private String field_e;
    //setter & getter...public Domain(){}//一个类中如果有多个构造方法,则一定需要一个空的构造方法
    public Domain(String field_a,String field_b){//以定制查询两个字段为类
    this.field_a = field_a;
    this.field_b = field_b;
    }
    }//Hibernate
    select new Domain(field_a,field_b) from Domain
    返回的是List<Domain>
      

  6.   

    Query q = session.createQuery("select new User(name,pwd)from User");
       list = q.list();
       tran.commit();其中的部分代码
      

  7.   

    谢谢,我查询的是复杂的统计SQL语句,所以一定要用CreateSQLQuery,我已经解决了了。就是它返回的是一个Object[],在查询时addScaler各个返回字段的类型就行了
      

  8.   


     这是hql语法,是要用sql语句啊