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

简介:

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

查询代码:

 

Java代码   收藏代码
  1. /*** 
  2.      *  
  3.      * @param obj 
  4.      * @param includeZeros 
  5.      * @return 
  6.      */  
  7.     private Criteria getCriteria( Object obj, boolean includeZeros) {  
  8.         if (obj == null) {  
  9.             return this.sessionFactory.getCurrentSession().createCriteria(clz);  
  10.         } else {  
  11.             Example example = Example.create(obj);  
  12.             if (!includeZeros) {  
  13.                 example = example.excludeZeroes();  
  14.             }  
  15.             Criteria criteria = this.sessionFactory.getCurrentSession()  
  16.                     .createCriteria(clz);  
  17.             criteria.add(example);  
  18.             return criteria;  
  19.         }  
  20.     }  

 测试

 

 

Java代码   收藏代码
  1. OrdersDao OrdersDao=(OrdersDao)ctx.getBean("ordersDao");  
  2. Orders orders=new Orders();  
  3.         orders.setBarCode("00001925");  
  4. List list=new ArrayList();  
  5. //      long count=osTypeDao.listByPage(osType, false, list, 0, 5);  
  6.         long count=ordersDao.listByPage(orders, false, list, 05);  
  7.         System.out.println("count:"+count);  

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

 

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

可能是代码的问题

Orders 结构如下:

Java代码   收藏代码
  1. /*** 
  2.  * Note:不允许修改表结构<br />table:orders<br /> 
  3.  * 订单类 
  4.  * @author huangwei 
  5.  * @since 2014-09-02 
  6.  */  
  7. @Entity  
  8. @Table(name = "orders")  
  9. public class Orders {  
  10.   
  11.     /*** 
  12.      * 条码,订单号 
  13.      */  
  14.       
  15.     private String barCode;  
  16.     /*** 
  17.      * 本订单返工次数,新单为0,返工累加∑1-n 
  18.      */  
  19.     private int serial;  
  20. /*** 
  21.      * 条码,订单号 
  22.      * @return 
  23.      */  
  24.     @Id  
  25.     @Column(name="Order_ID",unique=true)  
  26.     public String getBarCode() {  
  27.         return barCode;  
  28.     }  
  29.     public void setBarCode(String barCode) {  
  30.         this.barCode = barCode;  
  31.     }  
  32.   
  33. }  

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

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

相关文章
|
1月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(Dept.java)
Hibernate中使用Criteria查询及注解——(Dept.java)
14 1
|
1月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——( EmpCondition)
Hibernate中使用Criteria查询及注解——( EmpCondition)
14 1
|
1月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(DeptTest.java)
Hibernate中使用Criteria查询及注解——(DeptTest.java)
8 1
|
1月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(Emp.hbm.xml)
Hibernate中使用Criteria查询及注解——(Emp.hbm.xml)
11 2
|
1月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(Emp.java)
Hibernate中使用Criteria查询及注解——(Emp.java)
9 0
|
11月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——( EmpCondition)
Hibernate中使用Criteria查询及注解——( EmpCondition)
47 0
|
11月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(DeptTest.java)
Hibernate中使用Criteria查询及注解——(DeptTest.java)
32 0
|
11月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(HibernateUtil)
Hibernate中使用Criteria查询及注解——(HibernateUtil)
30 0
|
11月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(hibernate.cfg.xml)
Hibernate中使用Criteria查询及注解——(hibernate.cfg.xml)
42 0
|
11月前
|
Java 数据库连接
Hibernate中使用Criteria查询及注解——(Dept.hbm.xml)
Hibernate中使用Criteria查询及注解——(Dept.hbm.xml)
27 0