Question

Given the mapped hibernate class:

@Entity
public class MyTestClass {
  /* id and stuff */

  private Integer aValue;
  private Integer bValue;
}

you can do the following with HQL:

Query query 
  = getCurrentSession().createQuery("select aValue * bValue from MyTestClass");
List<Double> resultList = query.list;

and get the calculated result out.

Is it possible to do something similar to this with the Criteria API? I still haven't found a way to use math operations with the Criteria API. We have aggregate functions like sum, avg and so on, but not the basic math operators?

Was it helpful?

Solution

You can make a new property in your class that is this computed value. Just specify the formula attribute for that property. Then you can include this property in your Criteria.

<property name="product" formula="aValue*bValue" />

formula (optional): an SQL expression that defines the value for a computed property. Computed properties do not have a column mapping of their own.

OTHER TIPS

you can always add it as sql I think there was some sqlProjection/sqlRestriction method

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top