hibernate标准和if语句?

时间:2014-03-01 08:32:15

标签: java hibernate criteria

我想选择类似MySQL查询的东西,在休眠标准中怎么做?

SELECT id, IF(type = 'P', amount, amount * -1) as amount FROM    report

2 个答案:

答案 0 :(得分:0)

我不确定如何使用条件来执行此操作,但您可以通过在hibernate中执行本机sql查询来实现相同的目标。 让我们假设您的模型类是“Report”,它有一个名为“amount”的属性及其getter和setter:

String query = "SELECT id, IF(type = 'P', amount, amount * -1) as amount FROM    report";
Session session = sessionFactory.openSession();
SQLQuery sqlQuery = session.createSQLQuery(query);
sqlQuery.setResultTransformer(Transformers.aliasToBean(Report.class));
List<Report> resultList = sqlQuery.list();
session.close();

答案 1 :(得分:0)

您可以通过实施 org.hibernate.criterion.Criterion 接口创建自己的条件表达式,并在条件查询中使用它。