使用原生的sql,并且希望sql查询出来的结果能够绑定到pojo上。
hibernate API中提供了createSQLQuery 和createQuery接口。
因为hibernate要查询的对象是要和表结构一一映射的,但是我们可能只需要其中几个字段,这个时候就用到了addScalar方法。
如:
public List<CleaneyeCollectConfig> getAllCleaneyeCollectConfig() { return super.getSession().createSQLQuery(TaskSql.SELECT_CLEANEYE_COLLECT_CONFIG) .addScalar("id", StandardBasicTypes.LONG) .addScalar("name", StandardBasicTypes.STRING) .addScalar("collectType", StandardBasicTypes.STRING) .setResultTransformer(new AliasToBeanResultTransformer(CleaneyeCollectConfig.class)).list(); }
CleaneyeCollectConfig这个实体所对应的数据库表不只id, name, collectType这三个字段,若cleaneyeCollectConfig只配置这三个属性的话,需要加上addScalar方法。