table是否有CustomerId字段hibernate 2.1.x的原生sql查询功能很有限, 大部分功能未实现hibernate 3.0.x还没测试

解决方案 »

  1.   

    table中有CustomerId字段,而且大小写没有问题。我想既然是原生SQL查询,那么必然应该可以只查某些字段,而不是对象内容全部都查,可是createSQLQuery方法的说明如下:Create a new instance of Query for the given SQL string. Parameters:
    sql a query expressed in SQL
    returnAlias a table alias that appears inside {} in the SQL string
    returnClass the returned persistent classcreateSQLQuery(String sql, String returnAlias, Class returnClass)
    第二个参数需要表的别名,第三个则是返回的持久化类型
    难道说只能返回持久化类吗,我不能返回诸如String,Double等值吗?
    请各位帮忙看看
      

  2.   

    我用的是Hibernate2.1.8,我估计他还不提供这样的功能,而Hibernate3似乎已经可以提供这样的功能了,Hibernate2要查询一个表,必须把这个表的所有字段查询出来,而且构造成这个表所对应的实体对象,查询最后返回的结果是实体对象,不支持返回某个字段这样的功能。
    这是我的理解,如果有不对的地方,请大家指正!
      

  3.   

    该成:
    List query = session.createSQLQuery(
    "select {customer}.CustomerId AS {customer.name} from E_Customer {customer}","customer",Customer.class)
    .setMaxResults(10);
    .list();
      

  4.   

    修正:
    List query = session.createSQLQuery(
    "select {customer}.CustomerId AS {customer.name} from E_Customer {customer}","customer",Customer.class)
    .setMaxResults(10)
    .list();
      

  5.   

    使用原生SQL要select出所有的列或者用星号所有资料上都没有说清楚这个问题
      

  6.   

    我也是这个问题!急呀!!
    wangw1319(于风) 的回复:
    List query = session.createSQLQuery(
    "select {customer}.CustomerId AS {customer.name} from E_Customer {customer}","customer",Customer.class)
    .setMaxResults(10);
    .list();
    这样不会有语法错误吗?我编译都通不过啊。
    能不能详细解释一下或给个能运行的例子?