zoukankan      html  css  js  c++  java
  • 用原生sql查询返回实体对象的方法

    最近由于需求变更,客户需要在原来的查询基础上加上一个判断条件,但是这个判断条件所在的实体跟原来的查询实体没有直接关联。为了不影响原来的查询结果,改为用原生SQL,使用left join来关联查询。为了不改变对查询结果的处理逻辑,将查询结果封装成原来的对象进行操作。具体操作方法如下: 
    1.基于JPA规范的程序: 
    Query query = entityManager.createNativeQuery("select id, name, age from t_user"); 
      query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(clazz)); 
      //  其中clazz为封装对象的class
      List rows = query.getResultList(); 
      2.基于Session的程序: 
    sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS").setResultTransformer(Transformers.aliasToBean(clazz)); 
    这两种方法需要注意的是查询的字段的别名需要跟clazz的属性对应。

  • 相关阅读:
    日志处理
    md5加密
    os 模块
    time模块
    函数的进阶
    参数 返回值
    文件操作
    集合 拷贝
    linux如何更快的远程拷贝?scp,tar,rsync?
    修改内核临时端口范围
  • 原文地址:https://www.cnblogs.com/iiot/p/3878351.html
Copyright © 2011-2022 走看看