我想查询author 中的一个 name
public class Author {
private Integer id;
private String name;
}
怎么写hql 或是 sql
 String s3="select au.name FROM author au where au.id=?";
String  str3 = (String)session.createSQLQuery(s3).setParameter(0,1).toString();
System.out.println(str3);
我写成这样,不出来

解决方案 »

  1.   

    from author au where au.id = ?;hibernate 是用对象做操作的,你得到的结果是一个author对象,然后从这个对象里面跟据get 方法去取得name.
      

  2.   

    String str3 = (String)session.createSQLQuery(s3).setParameter(0,1).toString();
    你这是想输出什么呢?
    createSQLQuery 返回的是一个object【】 对象数组
    你起码把里面的值取出来吧
      

  3.   

    from author au where au.id = 1; 试试?
      

  4.   

    建议楼主:去看看你的配置文件中,hibernate映射文件对Author的配置,select语句中表名的地方用配置中的Author对象
      

  5.   

    From Author au where au.id = ?,取出后,直接去NAME属性的值
      

  6.   

    String s3="select au.name FROM author au where au.id=?";写都写错了,author首字母应该是大写,这个不是你数据库的表名
    而是你反射出来的反射类,Author 
      

  7.   

    +1 hql语句中from 后面是hibernate映射的类名,不是表名.
      

  8.   

    二种解决方法
    第一种 见一楼
    第二种:
    String s3="select au.name from Author au where au.id=?";
    String  str = (String)session.createQuery(s3).setParameter(0,1).uniqueResult();
    System.out.println(str);