【问题标题】:Please provide example for an If statement in hibernate criteria请为休眠条件中的 If 语句提供示例
【发布时间】:2013-03-27 10:25:00
【问题描述】:

如何使用休眠条件编写 if 条件的条件。

我需要转换的查询是

SELECT date, product, IF(type = 'msrp', amount, 0) price, 
     IF(type != 'msrp', amount, 0) tax FROM productdetail group by date, product;

请提供 if 语句 在休眠条件中的正确用法。

【问题讨论】:

  • 标准 API 不支持此功能。如果需要,您必须实现自己的投影(如果可能,我还没有检查过 API)。

标签: java hibernate hibernate-criteria


【解决方案1】:

正如@JBnizet 所说,标准 API 不支持此功能。除非您使用的是 NHibernate

如果你使用 NHIbernate

  Projections.Conditional(
         Restrictions.EqProperty(..............

但这是我使用 Hibernate 的可能解决方案。

1)在这种情况下,您可以通过使用NativeSqlQuery 来使用相同的查询

2) 或者使用 HQL。有一个名为 case whenexpression in HQL。这可能会有所帮助 Using a CASE statement in HQL select

【讨论】:

    【解决方案2】:

    联合查询的标准解决方法是一个视图表,否则它是 java 中的 2 个条件和逻辑来操作结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      相关资源
      最近更新 更多