`
xhcat1025
  • 浏览: 4734 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

DetachedCriteria 按不同条件如何自由组合where子句

阅读更多
public static void main(String[] args) {
        Session session = null;
        Transaction tx = null;
        List list = null;
        Criteria criteria = null;
        InfoTab infoTab = null;

        try {

            session = HibernateSessionFactory.getSession();
            tx = session.beginTransaction();

            DetachedCriteria detachedCriteria = DetachedCriteria
                    .forClass(InfoTab.class);

            Integer categoryId = 1;
            String title = "出租";

            if (categoryId != 0) {
                detachedCriteria.add(Restrictions.eq("categoryId", categoryId));
            } else if (!title.equals("")) {
                detachedCriteria.add(Restrictions.like("title", title,
                        MatchMode.ANYWHERE));
            }

            /*
             * 我的意思是:如何两个条件都满足,如何才能自由组合成如下示例?
             *
             * detachedCriteria.add(Restrictions.and(Restrictions.eq("categoryId",
                    categoryId), Restrictions.like("title", title,
                    MatchMode.ANYWHERE)));
                   
                    */

            criteria = detachedCriteria.getExecutableCriteria(session);

            list = criteria.list();

            for (int i = 0; i < list.size(); i++) {
                infoTab = (InfoTab) list.get(i);
                System.out.println(infoTab.getTitle());
            }

            tx.commit();

        } catch (HibernateException he) {
            he.printStackTrace();
        }
    }
分享到:
评论

相关推荐

    hibernate3.2.5

    1. 基本语法:HQL更新查询的语法结构类似于SQL的UPDATE语句,但以"UPDATE"关键字开头,后跟要更新的对象名,然后是SET关键字,接着是属性名和赋值,最后是WHERE子句来指定更新条件。例如: ```java Query query = ...

    Hibernate_query查询数据表中部分字段.

    在复杂的查询场景下,可以使用DetachedCriteria来预定义查询条件,然后在需要时再与其他查询组合使用。 5. **命名查询(Named Queries)**: 如果某些查询模式经常被使用,可以定义命名查询,将其写入XML映射文件...

    Java的Hibernate框架中Criteria查询使用的实例讲解

    然后,我们添加了一个条件`criteria.add(Restrictions.eq("name","shun"))`,这相当于在SQL中设置WHERE子句,即`WHERE name='shun'`。 `Restrictions.eq()`方法是Criteria API中的一个关键组件,它用于构建等于...

    Hibernate 在查询操作中要使用分页+命名参数+排序技术

    然后,在主查询中,我们使用了这个条件并进行分页,同时按博客的发布时间进行升序排序。 以上就是关于“Hibernate在查询操作中使用分页+命名参数+排序技术”的详细介绍。在实际开发中,熟练掌握这些技巧能帮助我们...

    Hibernate学习笔记

    笔记会深入讲解HQL的语法,包括SELECT、FROM、WHERE子句,以及JOIN、GROUP BY、ORDER BY等高级特性。 7. **Criteria API** 除了HQL,Hibernate还提供了Criteria API进行动态查询。这种方式更加面向对象,适合在...

    hibernate查询

    HQL语句可以包含`SELECT`子句,也可以省略,不写时默认查询所有属性。使用HQL有四个基本步骤: 1. 获取Session对象。 2. 编写HQL查询语句。 3. 创建Query对象。 4. 执行查询并获取结果。 HQL支持`SELECT`语句中的...

    Hibernate 3.2.0 中文官方文档

    学习HQL的基本语法,如SELECT, FROM, WHERE子句,以及JOIN, GROUP BY, ORDER BY等。 6. **Criteria查询**:另一种动态构建查询的方式,提供了更安全、更强大的查询能力,避免了SQL注入问题。 7. **Criteria API与...

    Hibernate中文参考文档

    HQL支持SELECT、FROM、WHERE、GROUP BY、ORDER BY等子句,可以进行复杂的查询。 六、Criteria查询 Criteria API提供了一种更加面向对象的方式来构建查询,它通过构建查询条件来执行数据库查询。这种方法灵活且类型...

    Hibernate3.2API

    2. Criteria查询:另一种对象级别的查询方式,通过Criteria、DetachedCriteria等接口构建查询条件,灵活且动态。 四、级联操作与关联映射 1. 级联操作:通过 cascade 属性,可以在操作父对象时自动处理子对象的...

    Hibernate Quickly 源代码

    源码中会包含各种HQL示例,如SELECT、FROM、WHERE子句的使用,以及JOIN操作,这有助于理解如何通过HQL进行复杂的数据检索。 4. Criteria API:除了HQL,Hibernate还提供了Criteria API,一种更动态的查询方式。通过...

    Hibernate技术手册.chm(台湾写的)

    - HQL的基本语法:SELECT、FROM、WHERE、GROUP BY、ORDER BY等子句。 - HQL的查询优化:避免N+1查询,使用JOIN fetch预加载关联数据。 7. **Criteria查询**: - 动态构建查询条件,比HQL更灵活。 - Criteria、...

Global site tag (gtag.js) - Google Analytics