一.查询对象的所有字段
String sql = "select * from jbpm_processdefinition";
SQLQuery sqlquey = session.createSQLQuery(sql).addEntity(ProcessDefinition.class);
List<ProcessDefinition> processDefinitions = sqlquery.list();
当在hibernate中使用原生sql语句查询中,如果是查询一个对象的所有字段,在sqlquery的后面一定要调用addEntity(ProcessDefinition.class)这个方法不然会报错,查询出来的结果会自动封装成为ProcessDefinition对象!
二.查询对象的个别字段
String sql = "select name_ from jbpm_processdefinition";
SQLQuery sqlquey = session.createSQLQuery(sql);
sqlquey.addScalar("name_",new StringType());
List listone= sqlquery.list();
当在hibernate中使用原生sql语句查询,如果只查询对象(表)的部分字段,则要为每一个字段设置类型,如:sqlquey.addScalar("name_",new StringType());
listone里面保存的是一个个的Object对象
但是
String sql= "select name_ from jbpm_processdefinition";
sqlquey = session.createSQLQuery(sql);
sqlquey.addScalar("name_",new StringType());
sqlquey.addScalar("version_", new IntegerType());
List listmore = sqlquey.list();
listmore里面保存的是Object[]的集合