如何将mySQL WHERE限制转换为hibernate表达式限制或谓词限制? MySQL声明是:
SELECT *
FROM Zaposleni
WHERE ime= 'Marko'
OR adresa= 'Uzice'
AND brojgodina BETWEEN 25 AND 50
OR visinadohotka BETWEEN 10 AND 30
答案 0 :(得分:0)
对OR子句使用Disjunction
Criteria criteria = session.createCriteria(YourEntityClassName.class);
Disjunction disjunction = Restrictions.disjunction();
Criterion ime = Restrictions.eq("ime","Marko");
Criterion adresa = Restrictions.eq("adresa","Uzice");
disjunction.add(ime);
disjunction.add(adresa);
Disjunction disjunctionForBetweenCondition = Restrictions.disjunction();
Criterion brojgodina = Restrictions.between("brojgodina", 25, 50);
Criterion visinadohotka = Restrictions.between("visinadohotka", 10, 30);
disjunctionForBetweenCondition.add(brojgodina);
disjunctionForBetweenCondition.add(visinadohotka);
criteria.add(disjunction);
criteria.add(disjunctionForBetweenCondition);