一、对象封装:Java代码:
Configuration config =newConfiguration().configure();
SessionFactory sf= config.buildSessionFactory();
Session session = sf.openSession();
Transaction ts = session.beginTransaction();
Query query = session.createSQLQuery("select * from Tree t where pid in (select id from Tree) ") .addEntity(Tree.class);//返回对象
List list = query.list(); (Tree)list.get(i);
此时在遍历list时就可以(Tree)list.get(i);将每一行的内容变换为一个对象了。
二、属性值,Map封装
Java代码:
Query query = session.createSQLQuery("select id,name from Tree t where pid in (select id from Tree) ").setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);//返回一个map,KEY:为DB中名称一致(大小写一致)
//遍历list时就可以
Map map = (Map)list.get(i);
map.get("id");
map.get("name");//来取值。
按你的SQL语句select后的字段名来作为map的Key,但这个key必须与数据库中的字段名一模一样
三、函数方面设值
Java代码
Query query = session.createSQLQuery("select sum(id) SUMID from Tree t where pid in (select id from Tree).addScalar("SUMID",Hibernate.INTEGER).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 转换类型,按DB中的type转;返回一个map,KEY:为DB中名称一致(大小写一致)
Map map = (Map)list.get(i);
map.get("SUMID");
直接就map.get("SUMID")可以取值了