Hibernate使用sql语句查询,返回实体类型的方法及注意事项

来源:互联网 发布:turmoil mac破解版 编辑:程序博客网 时间:2024/05/17 02:09
以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中。Hibernate中,可以自动帮我们注入到Hibernate 甚至是 非 Hibernate 类型当中。
 
Java代码  
String sql = "select * from users";  

SQLQuery sqluery = session.createSQLQuery(sql).addEntity(Users.class);  


List<Users> list = new ArrayList<Users>();
list = sqluery.list();  

System.out.println(list.get(0).getUsername());

注意:如果想要访问list中的值,必须在声明List时,加入实体对象,即List<Users>,如果没有<Users>,编译器就无法将POJO中数据按实体类封装,也就无法通过lsit直接访问数据了


注册到非 Hibernate pojo 中:
Java代码  
sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")  
        .setResultTransformer(Transformers.aliasToBean(CatDTO.class))  
 
返回多个实体
Java代码  
sess.createSQLQuery("SELECT {cat.*}, {mother.*}  FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID")  
 .addEntity("cat", Cat.class)  
 .addEntity("mother", Mother.class)  
  
{cat.*},   的cat   就是 addEntity(“ 里面的 cat 名称。
 
原创粉丝点击