zoukankan      html  css  js  c++  java
  • HibernateTemplate方法的使用

    1、查询帖子(Post)为例

    查找所有的帖子

        public List<Post> findPosts() {
            String hql = "from Post p left join fetch p.user";
            List<Post> list= null;
            list = (List<Post>) this.ht.find(hql);
            return list;
        }
        @Transactional(propagation=Propagation.REQUIRED)
        public List<Post> findPosts2() {
            List<Post> list= null;
            DetachedCriteria dc = DetachedCriteria.forClass(Post.class);
            list = (List<Post>) this.ht.findByCriteria(dc);
            return list;
        }    
        @Transactional(propagation=Propagation.REQUIRED)
        public List<Post> findPosts3() {
            List<Post> list= null;
            list = (List<Post>) this.ht.findByExample(new Post());
            return list;
        }

    特定条件查询

      @Transactional(propagation= Propagation.REQUIRED)
        public List<Post> findPostByUser(String userid) {
            String hql = "from Post p where p.user.userid = :userid";
            List<Post> list= null;
            try{
            list = (List<Post>) this.ht.findByNamedParam(hql, "userid",userid);//list = (List<Post>) this.ht.findByNamedParam(hql, new String[]{"userid"},new String[]{userid})
    }catch(Exception e){ e.printStackTrace(); } return list; }

    分页查询

        @Transactional(propagation=Propagation.REQUIRED)
        public List<Post> findPosts(int start,int limit) {
            String hql = "from Post p left join fetch p.user";
            List<Post> list= null;
            DetachedCriteria dc = DetachedCriteria.forClass(Post.class);
            list = (List<Post>) this.ht.findByCriteria(dc, start, limit);//this.ht.findByExample(new Post(), start, limit);
            return list;
        }

     原生的sql查询(返回的是object数组)

         @Transactional(propagation=Propagation.REQUIRED)
        public List<Post> findPosts4() {
            String sql = "select * from post";
            List<Post> list= null;
            list = (List<Post>) this.ht.getSessionFactory().getCurrentSession().createSQLQuery(sql).list();
            return list;
        }
            
  • 相关阅读:
    LeetCode 32. 最长有效括号(Longest Valid Parentheses)
    LeetCode 141. 环形链表(Linked List Cycle)
    LeetCode 160. 相交链表(Intersection of Two Linked Lists)
    LeetCode 112. 路径总和(Path Sum)
    LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
    LightGBM新特性总结
    sql service 事务与锁
    C#泛型实例详解
    C# 中的委托和事件(详解)
    C# DateTime日期格式化
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/4118505.html
Copyright © 2011-2022 走看看