this.getHibernateTemplate().findByCriteria(criteria);为什么只有首次有效,第二次开始返回的都是空? 5

publicList<Employee>findEmp(Employeeemp){if(emp!=null){if(emp.getCode()!=null&&String... public List<Employee> findEmp(Employee emp) {
if (emp != null) {
if (emp.getCode() != null
&& String.valueOf(emp.getCode()).trim().length() > 0) {
System.out.println("~Code = " + emp.getCode());
criteria.add(Restrictions.eq("code", emp.getCode()));
}
if (emp.getName() != null
&& String.valueOf(emp.getName()).trim().length() > 0) {
System.out.println("~Name = " + emp.getName());
criteria.add(Restrictions.like("name", emp.getName(),
MatchMode.ANYWHERE));
}
}

List<Employee> list = this.getHibernateTemplate().findByCriteria(
criteria);
System.out.println("~List.size = " + list.size());
return list;
}
控制台打印:
~Code = 11
Hibernate: select this_.id as id0_0_, this_.code as code0_0_, this_.name as name0_0_, this_.birthday as birthday0_0_, this_.sex as sex0_0_, this_.telephone as telephone0_0_, this_.email as email0_0_ from employee this_ where this_.code=?
~List.size = 1
~Code = 111
Hibernate: select this_.id as id0_0_, this_.code as code0_0_, this_.name as name0_0_, this_.birthday as birthday0_0_, this_.sex as sex0_0_, this_.telephone as telephone0_0_, this_.email as email0_0_ from employee this_ where this_.code=? and this_.code=?
~List.size = 0

明明有值传进去啊,就算不传都是可以把全部记录查询出来的,求解啊!!!难受!!!
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
百度网友6f98ecd
2017-03-22
知道答主
回答量:5
采纳率:0%
帮助的人:5165
展开全部
我也遇到这样的问题,正在研究
没有答案,eq的方法无法传进去值,一直为空
但是换个方法就好了
你要不试试sqlRestriction方法,它也是Restrictions提供的方法,你试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-06-16
展开全部
criteria.add(Restrictions.eq("code", emp.getCode()));

重复了
追问
我看HQL发现,第一次的时候是:where this_.code=?,第二次的时候是:where this_.code=? and this_.code=?

感觉好像是把我第一次的也add到了第二次上了,请问要怎么修改呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式