以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中。Hibernate中,可以自动帮我们注入到Hibernate 甚至是 非 Hibernate 类型当中。
Java代码
String sql = "select * from users";
list = sqluery.list();
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 名称。
Java代码
String sql = "select * from users";
SQLQuery sqluery = session.createSQLQuery(sql).addEntity(Users.class);
list = sqluery.list();
System.out.println(list.get(0).getUsername());
注意:如果想要访问list中的值,必须在声明List时,加入实体对象,即List<Users>,如果没有<Users>,编译器就无法将POJO中数据按实体类封装,也就无法通过lsit直接访问数据了
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 名称。