`

QBC 關聯查詢

阅读更多

    @SuppressWarnings("unchecked")
    public List<FactoryBean> searchFactoryListByPaging(final int start,
            final int limit, final FactoryBean factoryBean) {
        return (List<FactoryBean>) getHibernateTemplate().execute(
                new HibernateCallback() {
                    public Object doInHibernate(Session session)
                            throws HibernateException, SQLException {
                        Criteria criteria = session
                                .createCriteria(FactoryBean.class);
                        // 條件
                        if (null != factoryBean) {
                            if (null != factoryBean.getFullName()
                                    && !"".equals(factoryBean.getFullName())) {
                                criteria.add(Restrictions.like("fullName",
                                        factoryBean.getFullName(),
                                        MatchMode.ANYWHERE));
                                criteria.add(Restrictions.like("simpleName",
                                        factoryBean.getFullName(),
                                        MatchMode.ANYWHERE));
                                criteria.add(Restrictions.like("unifyName",
                                        factoryBean.getFullName(),
                                        MatchMode.ANYWHERE));
                            }
                            if (null != factoryBean.getChargeMan()
                                    && !"".equals(factoryBean.getChargeMan())) {
                                criteria.add(Restrictions.like("chargeMan",
                                        factoryBean.getChargeMan(),
                                        MatchMode.ANYWHERE));
                            }
                            if (null != factoryBean.getContactMan()
                                    && !"".equals(factoryBean.getContactMan())) {
                                criteria.add(Restrictions.like("contactMan",
                                        factoryBean.getContactMan(),
                                        MatchMode.ANYWHERE));
                            }
                            if (null != factoryBean.getEmail()
                                    && !"".equals(factoryBean.getEmail())) {
                                criteria.add(Restrictions.like("email",
                                        factoryBean.getEmail(),
                                        MatchMode.ANYWHERE));
                            }
                            if (null != factoryBean.getFactoryAdderss()
                                    && !"".equals(factoryBean
                                            .getFactoryAdderss())) {
                                criteria.add(Restrictions.like(
                                        "factoryAdderss", factoryBean
                                                .getFactoryAdderss(),
                                        MatchMode.ANYWHERE));
                            }
                            if (null != factoryBean.getRemark()
                                    && !"".equals(factoryBean.getRemark())) {
                                criteria.add(Restrictions.like("remark",
                                        factoryBean.getRemark(),
                                        MatchMode.ANYWHERE));
                            }
                            if (null != factoryBean.getBizFactorytype()) {
                                criteria.add(Restrictions.eq("bizFactorytype",
                                        factoryBean.getBizFactorytype()));
                            }
                        }
                        criteria.add(Restrictions.in("status",
                                new Integer[] { 1 }));
                         criteria.addOrder(Order.desc("factoryId"));
                        criteria.setFirstResult(start).setMaxResults(limit);
                        return criteria.list();
                    }
                });
    }

分享到:
评论

相关推荐

    QBC的各种查询

    QBC,全称为Query By Criteria,是Java世界中一种基于对象的查询方式,主要用于简化Hibernate框架中的数据查询操作。QBC提供了一种面向对象的方式来构建查询条件,与SQL语句相比,它更易于理解和维护,尤其在处理...

    Hibernate QBC高级查询.rar

    4. **Join操作**:在QBC中,可以方便地进行内连接(Inner Join)、左连接(Left Outer Join)以及其他类型的连接操作,以处理多表关联查询。 5. **子查询**:QBC允许我们在查询中嵌套其他查询,这在处理复杂的业务...

    QBC QBE查询

    4. **关联查询**:支持一对一、一对多、多对一、多对多等关联关系的查询,可以轻松处理复杂的数据结构。 5. **投影与转换**:可以用Criteria的setProjection()方法选择查询返回的结果集,甚至可以将结果转换为自定义...

    QBC的使用全集大全

    - **关联查询**:Criteria API支持一对一、一对多、多对一、多对多的关联查询,可以通过createCriteria()方法添加关联实体,然后设置关联条件。 - **投影(Projection)**:Projection接口用于定义查询结果的返回...

    继承关系映射和HibernateQBC查询

    - 查询时,需要联合查询多个表来获取完整信息。 #### 三种策略的比较 - **Table per Concrete Class**:易于理解和实现,但可能会导致较多的表数量。 - **Table per Class Hierarchy**:表数量较少,适合于子类间...

    Hibernate各种查询:联表查询 分页查询 位置参数查询(?) 占位符查询(冒号查询) 统计查询

    总的来说,Hibernate的`Criteria`、`Query`以及QBC(Query By Criteria)提供了灵活且强大的查询手段,它们不仅支持基本的单表查询,还能处理复杂的联表、分页、参数绑定和统计需求,是Java开发者进行数据库操作的...

    Hibernate的查询方式

    本文将深入探讨Hibernate的查询方式,特别聚焦于HQL(Hibernate Query Language)查询方式以及QBC(Query By Criteria)查询方式,旨在帮助读者全面理解并掌握这些核心功能。 #### HQL查询方式:面向对象的查询语言...

    Hibernate学习笔记(3)

    1. **多表关联查询**:对于复杂的多表关联查询,建议使用QBC,因为它能更好地组织代码结构,提高可读性和可维护性。 2. **性能考虑**:当需要频繁执行大量查询时,可以考虑使用HQL,利用其简洁性快速构建查询。同时...

    hibernate查询缓存1

    4. **Criteria查询**:Criteria API是一种完全面向对象的查询方式,也称为QBC(Query By Criteria)。它允许开发者动态构建查询,无需预先知道查询的具体形式。 5. **SQLQuery**:对于HQL无法满足的复杂SQL查询需求...

    Hibernate的查询 测试的架子

    在测试过程中,我们应关注查询性能、事务处理、异常处理以及实体关联的正确性。 接下来,让我们看看`源码`层面。深入Hibernate的源码可以帮助我们理解其内部工作流程,比如查询解析、SQL生成、执行计划制定等。例如...

    Criteria用法

    在Java的Hibernate框架中,Criteria API提供了一种用于动态构建查询的方法,它是Query By Criteria(QBC)查询方式的一部分。这种方式允许开发者避开编写HQL(Hibernate Query Language)语句,而是通过API调用来...

    hiberante查询方式使用详解

    HQL可以方便地进行复杂的查询,包括关联查询、分组、排序等。例如,如果你有一个`User`类,你可以通过以下HQL查询所有用户: ```java String hql = "from User"; List&lt;User&gt; users = session.createQuery(hql).list...

    hibernate 数据库操作方法

    Hibernate提供了三种主要的查询方式:SQL、HQL(Hibernate Query Language)和QBC(Query by Criteria)。 1. SQL查询: Hibernate支持直接执行SQL语句,这使得开发者可以充分利用数据库的特性和性能。通过`...

    浪磬J2EE第一期 Hibernate专题 第六讲 检索方式

    HQL允许进行简单的单表查询、关联查询、聚合函数以及子查询。例如,查询所有用户信息: ```sql SELECT u FROM User u ``` 或带有条件的查询: ```sql SELECT u FROM User u WHERE u.email = 'example@example.com' `...

    hibernate的查询方式介绍和hibernate的批处理和连接池配置hibernate

    - 可以通过子句实现对多个表的联合查询。 - 示例:查询学生及其所在班级的信息。 ```java String hql = "select s.stuId, s.stuName, b.banjiName from Student s, Banji b where s.banji.banjiId = b.banjiId";...

    Hibernate检索方式

    QBC允许开发者通过构建查询标准对象来表达查询逻辑,而不是编写查询语句。这种方式更加灵活,同时也支持复杂查询。 ##### 5. 本地SQL检索方式 本地SQL检索方式是指直接使用数据库特定的SQL查询语句来进行数据检索...

    Hibernate的检索方式

    导航对象图检索是一种常见的对象关联查询方式。这种方式通常用于加载已经存在于内存中的对象,并通过这些对象访问与其关联的对象。例如,在一个订单(Order)与商品(Product)之间存在一对多的关系时,可以通过已经...

    java-Hibernate 检索

    QBC 是一种使用 Query By Criteria API 来检索对象的方式,该 API 封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口。 session.createCriteria(Xxx.class); 五、本地 SQL 检索 本地 SQL 检索是使用...

Global site tag (gtag.js) - Google Analytics