我试图在where子句中的两个where条件之间创建'或'条件,但生成的sql有'and'而不是'或'。
代码
if (pat.getFirstName() != null)
criteria.add(Restrictions.like("firstName", pat.getFirstName()));
if (pat.getLastName() != null)
criteria.add(Restrictions.or(Restrictions.like("lastName", pat.getLastName())));
生成where子句
...... this_.FIRST_NAME喜欢哪里?和(this_.LAST_NAME喜欢?)
我在这里想念的是什么?
答案 0 :(得分:0)
以下对代码的更改有效。这是对hibernate API使用的误解。
criteria.add(Restrictions.or(Restrictions.like(“firstName”,pat.getFirstName()),Restrictions.like(“lastName”,pat.getLastName())));