我想选择类似MySQL查询的东西,在休眠标准中怎么做?
SELECT id, IF(type = 'P', amount, amount * -1) as amount FROM report
答案 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 接口创建自己的条件表达式,并在条件查询中使用它。