Reputation: 1795
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?
Upvotes: 4
Views: 2593
Reputation: 19330
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.
Upvotes: 6
Reputation: 11184
you can always add it as sql I think there was some sqlProjection/sqlRestriction method
Upvotes: 1