zoukankan      html  css  js  c++  java
  • JPA SQL 的复杂查询createNamedQuery

    @NamedNativeQueries({   
        @NamedNativeQuery(   
            name = "getNativeNutShellInfo",   //需要调用的name
            query = "{call cp_syslogin_web(?,?,?)}",   //存储过程,返回的List字段对应的值@EntityResult此处填充实体的属性值
            resultSetMapping = "ReturnColumnEntityList"  
        )   
    })   
      
    @SqlResultSetMappings({   
        @SqlResultSetMapping(   
            name = "ReturnColumnEntityList",   
            entities = {
              @EntityResult(entityClass = NutShellInfo.class,fields={  //返回的List字段对应的值此处填充实体的属性值
               @FieldResult(name = "aguid", column = "aguid"),
               @FieldResult(name = "user", column = "htkusr"),
               @FieldResult(name = "qty", column = "qtynow"),
               @FieldResult(name = "registered", column = "breg"),
               @FieldResult(name = "hint", column = "hint"),
               @FieldResult(name = "ver", column = "ver"),
               @FieldResult(name = "overQty", column = "boverqty"),
               @FieldResult(name = "timeout", column = "btimeout"),
               @FieldResult(name = "host", column = "htkwww")
              })
    
            }
    
        )   
    }) 
    
    @Entity
    public class NutShellInfo {
     @Id
     private String aguid;
     @Column(name = "htkusr")
     private String user;
     @Column(name = "qtynow")
     private double qty;
     @Column(name = "breg")
     private boolean registered;
     private String hint;
     private String ver;
     @Column(name = "boverqty")
     private boolean overQty;
     @Column(name = "btimeout")
     private boolean timeout;
     @Column(name = "htkwww")
     private String host;
     @Transient
     private String password;//这个字段不对数据库操作
    
     public String getUser() {
      return user;
     }
    
     public void setUser(String user) {
      this.user = user;
     }
    
     public double getQty() {
      return qty;
     }
    
     public void setQty(double qty) {
      this.qty = qty;
     }
    
     public boolean isRegistered() {
      return registered;
     }
    
     public void setRegistered(boolean registered) {
      this.registered = registered;
     }
    
     public String getHint() {
      return hint;
     }
    
     public void setHint(String hint) {
      this.hint = hint;
     }
    
     public String getVer() {
      return ver;
     }
    
     public void setVer(String ver) {
      this.ver = ver;
     }
    
     public boolean isOverQty() {
      return overQty;
     }
    
     public void setOverQty(boolean overQty) {
      this.overQty = overQty;
     }
    
     public boolean isTimeout() {
      return timeout;
     }
    
     public void setTimeout(boolean timeout) {
      this.timeout = timeout;
     }
    
     public String getHost() {
      return host;
     }
    
     public void setHost(String host) {
      this.host = host;
     }
    
     public String getPassword() {
      return password;
     }
    
     public void setPassword(String password) {
      this.password = password;
     }
    
    =========================dao=========================
     @Service
     public class PubBaseDaoImpl<T> implements PubBaseDao<T> {
     private EntityManager em = null;
    
     @PersistenceContext
     public void setEm(EntityManager em) {
      this.em = em;
     }
    
     @Override
     public List<T> qryNamedQuery(String nativeName,Object[] params) {
      Query q = em.createNamedQuery(nativeName);
      setQueryParams(q, params);
      return q.getResultList();
     }
    
    
     public void setQueryParams(Query query, Object[] params) {
      try {
       if (params != null && params.length > 0) {
        for (int i = 0; i < params.length; i++) {
         query.setParameter(i + 1, params[i]);
        }
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    
    =================services===================================
     @Override
     public void qryInfo(String userId, String machineCode) {
      List<NutShellInfo> list = baseDao.qryNamedQuery("getNativeNutShellInfo",new Object[] { userId, machineCode, 0 });
      
     }
    
     
    
     
    
     
    
     
    
     
    
     
    
     
    
    
    JPA 原生态SQL 的复杂查询之createNamedQuery,select * from查询,返回的List字段对应的填充实体
    ============实体类==========================
    @NamedNativeQueries({   
        @NamedNativeQuery(   
            name = "getNativeNutShellInfo",   //需要调用的name
            query = "select * from NutShellInfo where aguid=? and  htkusr=? and btimeout=? ",   //存储过程,返回的List字段对应的值@EntityResult此处填充实体的属性值
            resultSetMapping = "ReturnColumnEntityList"  
        )   
    })   
      
    @SqlResultSetMappings({   
        @SqlResultSetMapping(   
            name = "ReturnColumnEntityList",   
            entities = {
              @EntityResult(entityClass = NutShellInfo.class,fields={  //返回的List字段对应的值此处填充实体的属性值
               @FieldResult(name = "aguid", column = "id"),
               @FieldResult(name = "user", column = "htkusr"),
               @FieldResult(name = "qty", column = "qtynow"),
               @FieldResult(name = "registered", column = "breg"),
               @FieldResult(name = "hint", column = "hint"),
               @FieldResult(name = "ver", column = "ver"),
               @FieldResult(name = "overQty", column = "boverqty"),
               @FieldResult(name = "timeout", column = "btimeout"),
               @FieldResult(name = "host", column = "htkwww")
              })
    
            }
    
        )   
    }) 
    
    @Entity
    public class NutShellInfo {
     @Id
     private String aguid;
     @Column(name = "htkusr")
     private String user;
     @Column(name = "qtynow")
     private double qty;
     @Column(name = "breg")
     private boolean registered;
     private String hint;
     private String ver;
     @Column(name = "boverqty")
     private boolean overQty;
     @Column(name = "btimeout")
     private boolean timeout;
     @Column(name = "htkwww")
     private String host;
     @Transient
     private String password;//这个字段不对数据库操作
    
     public String getUser() {
      return user;
     }
    
     public void setUser(String user) {
      this.user = user;
     }
    
     public double getQty() {
      return qty;
     }
    
     public void setQty(double qty) {
      this.qty = qty;
     }
    
     public boolean isRegistered() {
      return registered;
     }
    
     public void setRegistered(boolean registered) {
      this.registered = registered;
     }
    
     public String getHint() {
      return hint;
     }
    
     public void setHint(String hint) {
      this.hint = hint;
     }
    
     public String getVer() {
      return ver;
     }
    
     public void setVer(String ver) {
      this.ver = ver;
     }
    
     public boolean isOverQty() {
      return overQty;
     }
    
     public void setOverQty(boolean overQty) {
      this.overQty = overQty;
     }
    
     public boolean isTimeout() {
      return timeout;
     }
    
     public void setTimeout(boolean timeout) {
      this.timeout = timeout;
     }
    
     public String getHost() {
      return host;
     }
    
     public void setHost(String host) {
      this.host = host;
     }
    
     public String getPassword() {
      return password;
     }
    
     public void setPassword(String password) {
      this.password = password;
     }
    
    =========================dao=========================
     @Service
     public class PubBaseDaoImpl<T> implements PubBaseDao<T> {
     private EntityManager em = null;
    
     @PersistenceContext
     public void setEm(EntityManager em) {
      this.em = em;
     }
    
     @Override
     public List<T> qryNamedQuery(String nativeName,Object[] params) {
      Query q = em.createNamedQuery(nativeName);
      setQueryParams(q, params);
      return q.getResultList();
     }
    
    
     public void setQueryParams(Query query, Object[] params) {
      try {
       if (params != null && params.length > 0) {
        for (int i = 0; i < params.length; i++) {
         query.setParameter(i + 1, params[i]);
        }
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    
    =================services===================================
     @Override
     public void qryInfo(String userId, String machineCode) {
      List<NutShellInfo> list = baseDao.qryNamedQuery("getNativeNutShellInfo",new Object[] { userId, machineCode, 0 });
      
     }
    
     
    
     
    
    JPA 原生态SQL 的复杂查询之createNamedQuery,select xxx,xxx from查询,返回的List字段对应的填充实体
    ============实体类==========================
    @NamedNativeQueries({   
        @NamedNativeQuery(   
            name = "getNativeNutShellInfo",   //需要调用的name
            query = "select aguid,htkusr from NutShellInfo where aguid=? and  htkusr=? and btimeout=? ",   //存储过程,返回的List字段对应的值@EntityResult此处填充实体的属性值
            resultSetMapping = "ReturnColumnEntityList"  
        )   
    })   
      
    @SqlResultSetMappings({   
        @SqlResultSetMapping(   
            name = "ReturnColumnEntityList",   
            entities = {} 
            columns = {
         @ColumnResult(name = "aguid"),   
                @ColumnResult(name = "htkusr"),   
            } 
        )   
    })
    
    @Entity
    public class NutShellInfo {
     @Id
     private String aguid;
     @Column(name = "htkusr")
     private String user;
     @Column(name = "qtynow")
     private double qty;
     @Column(name = "breg")
     private boolean registered;
     private String hint;
     private String ver;
     @Column(name = "boverqty")
     private boolean overQty;
     @Column(name = "btimeout")
     private boolean timeout;
     @Column(name = "htkwww")
     private String host;
     @Transient
     private String password;//这个字段不对数据库操作
    
     public String getUser() {
      return user;
     }
    
     public void setUser(String user) {
      this.user = user;
     }
    
     public double getQty() {
      return qty;
     }
    
     public void setQty(double qty) {
      this.qty = qty;
     }
    
     public boolean isRegistered() {
      return registered;
     }
    
     public void setRegistered(boolean registered) {
      this.registered = registered;
     }
    
     public String getHint() {
      return hint;
     }
    
     public void setHint(String hint) {
      this.hint = hint;
     }
    
     public String getVer() {
      return ver;
     }
    
     public void setVer(String ver) {
      this.ver = ver;
     }
    
     public boolean isOverQty() {
      return overQty;
     }
    
     public void setOverQty(boolean overQty) {
      this.overQty = overQty;
     }
    
     public boolean isTimeout() {
      return timeout;
     }
    
     public void setTimeout(boolean timeout) {
      this.timeout = timeout;
     }
    
     public String getHost() {
      return host;
     }
    
     public void setHost(String host) {
      this.host = host;
     }
    
     public String getPassword() {
      return password;
     }
    
     public void setPassword(String password) {
      this.password = password;
     }
    
    =========================dao=========================
     @Service
     public class PubBaseDaoImpl<T> implements PubBaseDao<T> {
     private EntityManager em = null;
    
     @PersistenceContext
     public void setEm(EntityManager em) {
      this.em = em;
     }
    
     @Override
     public List<T> qryNamedQuery(String nativeName,Object[] params) {
      Query q = em.createNamedQuery(nativeName);
      setQueryParams(q, params);
      return q.getResultList();
     }
    
    
     public void setQueryParams(Query query, Object[] params) {
      try {
       if (params != null && params.length > 0) {
        for (int i = 0; i < params.length; i++) {
         query.setParameter(i + 1, params[i]);
        }
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    
    =================services===================================
     @Override
     public void qryInfo(String userId, String machineCode) {
      List<NutShellInfo> list = baseDao.qryNamedQuery("getNativeNutShellInfo",new Object[] { userId, machineCode, 0 });
      
     }
  • 相关阅读:
    信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1068:与指定数字相同的数的个数
    信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1068:与指定数字相同的数的个数
    信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1067:整数的个数
    SSLZYC 2405 巧克力
    SSLZYC 2404 上学
    SSLZYC 2403 蜡烛
    SSLZYC 2402 世界语
    SSLZYC 2124 涂色
    SSLZYC 2391 数列
    SSLZYC 洛谷 P1498 南蛮图腾
  • 原文地址:https://www.cnblogs.com/zhanghongqiang/p/4113107.html
Copyright © 2011-2022 走看看