Java HibernateCallback返回值,即使搜索条件不合格

Java HibernateCallback返回值,即使搜索条件不合格,java,hibernate,hibernate-criteria,detachedcriteria,Java,Hibernate,Hibernate Criteria,Detachedcriteria,我的密码有问题。如果我输入了正确的条件,假设它返回正确结果的金额为300。但是如果我输入了不合格的搜索条件,它仍然返回不正确的结果 @Override public Page<ApPayment> searchPayment(final String searchCriteria, final PageSetting pageSetting) { HibernateCallback<Page<ApPayment>> paymentCallBack =

我的密码有问题。如果我输入了正确的条件,假设它返回正确结果的金额为300。但是如果我输入了不合格的搜索条件,它仍然返回不正确的结果

@Override
public Page<ApPayment> searchPayment(final String searchCriteria,
    final PageSetting pageSetting) {
HibernateCallback<Page<ApPayment>> paymentCallBack = new     HibernateCallback<Page<ApPayment>>() {
    @Override
    public Page<ApPayment> doInHibernate(Session session)
            throws HibernateException, SQLException {
        Criteria criteria =  session.createCriteria(ApPayment.class);
        if(!searchCriteria.isEmpty() && StringFormatUtil.isNumeric(searchCriteria)) {

            Integer paymentNo = Integer.valueOf(searchCriteria);
            Double amount = Double.valueOf(searchCriteria);

            criteria.add(Restrictions.or(Restrictions.like(ApPayment.FIELD.paymentNumber.name(), paymentNo), Restrictions.eq(ApPayment.FIELD.amount.name(), amount)));
        }
        Page<ApPayment> payments = getAll(criteria, pageSetting);
        for (ApPayment payment: payments.getData()) {
            --some codes--
        }
        return payments;
     }
  };
  return getHibernateTemplate().execute(paymentCallBack);
}
@覆盖
公共页面搜索支付(最终字符串搜索条件,
最终页面设置(页面设置){
HibernateCallback paymentCallBack=新的HibernateCallback(){
@凌驾
公共页面doInHibernate(会话)
抛出HibernateeException、SQLException{
条件=session.createCriteria(ApPayment.class);
如果(!searchCriteria.isEmpty()&&StringFormatUtil.isNumeric(searchCriteria)){
整数paymentNo=Integer.valueOf(searchCriteria);
Double amount=Double.valueOf(搜索条件);
criteria.add(Restrictions.or(Restrictions.like(ApPayment.FIELD.paymentNumber.name(),paymentNo),Restrictions.eq(ApPayment.FIELD.amount.name(),amount));
}
页面付款=getAll(标准、页面设置);
对于(ApPayment付款:payments.getData()){
--一些代码--
}
归还款项;
}
};
返回getHibernateTemplate().execute(paymentCallBack);
}

提前感谢。

您所说的不合格是什么意思?任何与我的付款记录不匹配的值。例如,payment1(paymentNo=12345,amount=500)。如果我输入“opii9090”,它将不返回任何内容。在我的例子中,它仍然返回payment1数据。您能告诉我们
getAll(criteria,pageSetting)
的作用吗?这部分看起来非常可疑:
Integer paymentNo=Integer.valueOf(searchCriteria);Double amount=Double.valueOf(搜索条件)使用相同的字符串并解析两个不同的值。