【问题标题】:Translate mySQL WHERE statement into hibernate restriction将 mySQL WHERE 语句翻译成休眠限制
【发布时间】:2015-07-13 10:04:51
【问题描述】:

如何将 mySQL WHERE 限制转换为休眠表达式限制或谓词限制? MySQL 语句是:

SELECT * 
FROM Zaposleni 
WHERE ime= 'Marko' 
OR adresa= 'Uzice' 
AND brojgodina BETWEEN 25 AND 50 
OR visinadohotka BETWEEN 10 AND 30

【问题讨论】:

  • 请告诉你 WHERE 条件
  • 您将如何回答以下问题:“如何将西班牙语动词翻译成英语动词?”是的,你不能不回问或说“查字典”。因此,请编辑您的问题以获得正确的问题陈述。
  • SELECT * FROM Zaposleni WHERE ime= 'Marko' OR adresa= 'Uzice' AND brojgodina BETWEEN 25 and 50 or visinadohotka BETWEEN 10 and 30
  • 对 OR 子句使用休眠析取

标签: mysql hibernate java-8 where predicate


【解决方案1】:

为 OR 子句使用析取

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);

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多