`

hibernate 使用org.hibernate.criterion.Example 查询无效

阅读更多

今天使用Example查询,结果发现设置的条件无效.

查询代码:

 

/***
	 * 
	 * @param obj
	 * @param includeZeros
	 * @return
	 */
	private Criteria getCriteria( Object obj, boolean includeZeros) {
		if (obj == null) {
			return this.sessionFactory.getCurrentSession().createCriteria(clz);
		} else {
			Example example = Example.create(obj);
			if (!includeZeros) {
				example = example.excludeZeroes();
			}
			Criteria criteria = this.sessionFactory.getCurrentSession()
					.createCriteria(clz);
			criteria.add(example);
			return criteria;
		}
	}

 测试

 

 

OrdersDao OrdersDao=(OrdersDao)ctx.getBean("ordersDao");
Orders orders=new Orders();
		orders.setBarCode("00001925");
List list=new ArrayList();
//		long count=osTypeDao.listByPage(osType, false, list, 0, 5);
		long count=ordersDao.listByPage(orders, false, list, 0, 5);
		System.out.println("count:"+count);

 但是执行时,发现where后面是1=1,即设置的查询条件(orders.setBarCode("00001925"))没有起作用.

 

非常奇怪,刚开始使用的sqlserver2000数据库,我以为是sqlserver2000的问题,所以我换成了mysql,但是发现mysql依然如故.所以确定不是数据库的问题./

可能是代码的问题

Orders 结构如下:

/***
 * Note:不允许修改表结构<br />table:orders<br />
 * 订单类
 * @author huangwei
 * @since 2014-09-02
 */
@Entity
@Table(name = "orders")
public class Orders {

	/***
	 * 条码,订单号
	 */
	
	private String barCode;
	/***
	 * 本订单返工次数,新单为0,返工累加∑1-n
	 */
	private int serial;
/***
	 * 条码,订单号
	 * @return
	 */
	@Id
	@Column(name="Order_ID",unique=true)
	public String getBarCode() {
		return barCode;
	}
	public void setBarCode(String barCode) {
		this.barCode = barCode;
	}

}

 后来发现突然发现其他字段没问题,那么barCode有什么特殊的地方吗?

再一看表,原来它是主键.

0
0
分享到:
评论

相关推荐

    Hibernate中Example的用法

    `Example`查询主要依赖于`org.hibernate.criterion.Example`类,它允许你基于一个实例对象创建查询条件,从而检索出数据库中所有符合该实例属性的对象。下面通过具体的代码示例来说明`Example`的基本使用: ```java...

    hibernateCriteria的使用.docx

    这里,`Example.create(s)`会根据`s`对象的属性生成查询条件,查询所有`giftortoy`字段为"2"的学生对象。 2. Query By Criteria (QBC) QBC是Criteria API的核心,它使用`Criteria`、`Criterion`、`Order`和`...

    hibernate criteria的使用方法

    2. **Criterion**:`org.hibernate.criterion.Criterion` 接口定义了一个查询标准,用于表示查询条件。 3. **Restrictions**:`org.hibernate.criterion.Restrictions` 类提供了一系列静态工厂方法,用于创建 ...

    Hibernate查询方法之探析.doc

    QBC是一种更灵活的查询方式,它使用`Criteria`、`Criterion`、`Order`和`Restrictions`等类构建查询条件。例如,可以使用`session.createCriteria(JdItemSerialnumber.class)`创建一个查询,然后添加条件`...

    Hibernate中Criteria的完整用法.docx

    例如,创建一个 Criteria 实例 org.hibernate.Criteria 接口表示,可以使用 Criteria 的 add(Criterion criterion) 方法来添加查询条件。Criterion 可以使用 Restrictions 工具类来创建,例如使用 eq、ge、between ...

    Hibernate的Criteria用法总结.doc

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("name", "John")); List...

    Hibernate中Criteria的完整用法

    **Example** 是一种特殊类型的Criterion,它基于一个实体对象创建查询条件。你可以忽略大小写,设置模糊匹配等,使得查询更加灵活。 **Projection** 是用于报表查询和聚合操作的接口。它定义了如何从数据库中提取...

    Hibernate中Criteria的使用

    Hibernate 中 Criteria 的使用 Hibernate 中 Criteria 的使用是 ...Hibernate 中 Criteria 的使用可以灵活地根据查询条件的组装来进行查询,使用 Criterion 和 Projection 设置查询条件,可以实现复杂的查询操作。

    Criteria的完整用法.pdf

    - **Example**:一种特殊的`Criterion`,允许通过实体对象实例化,实现基于对象的查询。支持忽略大小写、模糊匹配等特性。 - **Projection**:用于聚合查询和分组,例如计算平均值、最大值等。`Projections`类提供...

    Hibernate的Criteria用法总结

    Example exampleUser = Example.create(u).ignoreCase().enableLike(MatchMode.ANYWHERE); ``` Projection接口用于处理查询结果,比如计算平均值、计数、最大值、最小值和求和。SimpleProjection和ProjectionList...

    Hibernate - DetachedCriteria 的完整用法

    如使用 `session.createCriteria(Class)` 方法来创建 Criteria 实例,然后使用 `add(Criterion criterion)` 方法来添加查询条件,最后使用 `list()` 方法来获取查询结果。 Hibernate 的 Criteria 和 ...

    Hibernate中Criteria的用法

    在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Example.create(s)` 方法创建了一个示例对象,最后使用 `list()` 方法来获取查询结果。 QBC(Query By Criteria) QBC 是一种基于条件的查询机制,...

    Hibernate中Criteria的用法详解

    通过Example.create()方法,你可以忽略大小写,启用模糊匹配等,这在处理基于对象属性的查询时非常有用。 Projection接口用于查询结果的投影,即指定查询返回的字段。SimpleProjection如avg(), count(), max(), min...

    Hibernate的Criteria文档

    在Java的持久层框架Hibernate中,Criteria API是一个强大的查询工具,它可以用来替代传统的SQL或HQL(Hibernate Query Language)查询,以实现更加面向对象的数据库交互。Criteria API的设计旨在屏蔽不同数据库之间...

    Criteria.pdf

    - **灵活性**:两者均提供了高度的灵活性,可以使用`Criterion`和`Projection`来设置查询条件和投影结果,但`DetachedCriteria`的离线特性使其在某些场景下更加灵活。 #### Criterion与Projection详解 - **...

Global site tag (gtag.js) - Google Analytics