阅读 85

Hibernate Dao操作总结

Hibernate

  1. 使用构建器:

    //1. 获取条件构建
    CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder();
    //2. 创建条件构造器
    CriteriaQuery cq = criteriaBuilder.createQuery(User.class);
    //3. 指定根条件
    Root root = cq.from(User.class);
    //4. 指定查询条件
    List predicates = new ArrayList<>();
    if (StringUtils.isNotEmpty(email)) {
        predicates.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("name"), name)));
    }
    if (StringUtils.isNotEmpty(accountId)) {
        predicates.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("sex"), sex)));
    }
    cq.where(predicates.toArray(new Predicate[0]));
    //5. 查询数据
    return getSession().createQuery(cq).getResultList();
    
  2. NativeSql:

    //1. 创建本地sql
    String nativeSql = "select " +
            "a.id,a.name,a.sex,b.num " +
            "from tableA a,tableB b where a.id = b.id " +
            "and a.email = :email";
    //2. 创建
    Query query = getSession().createNativeQuery(nativeSql, User.class);
    //3. 执行
    query.setParameter("email", email).getResultList()
    
  3. Hsql:(可以实现使用自定义类作为数据载体)

String sql = "select new com.hytto.data.model.wear.UserDTO(pid,count(id) AS count) " +
        "from User u where status = ‘a‘ and pid in (:patterns)  GROUP BY email";
        
List list = getSession().createQuery(sql)
                .setParameter("patterns", patternIdList)
                .getResultList();

原文:https://www.cnblogs.com/gronbu1/p/15339740.html

文章分类
百科问答
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐