Annotation Interface Formula
Column.
A Formula mapping defines a "derived" attribute, whose state is determined
from other columns and functions when an entity is read from the database.
A formula may involve multiple columns and SQL operators:
// perform calculations using SQL operators
@Formula("sub_total * (1.0 + tax)")
BigDecimal totalWithTax;
It may even call SQL functions:
// call native SQL functions
@Formula("upper(substring(middle_name from 0 for 1))")
Character middleInitial;
By default, the fields of an entity are not updated with the results of evaluating
the formula after an insert or update. The @Generated
annotation may be used to specify that this should happen:
@Generated // evaluate the formula after an insert
@Formula("sub_total * (1.0 + tax)")
BigDecimal totalWithTax;
For an entity with secondary tables, a formula may involve columns of the primary table, or columns of any one of the secondary tables. But it may not involve columns of more than one table.
The @ColumnTransformer annotation is an alternative in
certain cases, allowing the use of native SQL to read and write values to
a column.
// it might be better to use @ColumnTransformer in this case
@Formula("decrypt(credit_card_num)")
String getCreditCardNumber() { ... }
- See Also:
-
Required Element Summary
Required Elements
-
Element Details
-
value
String valueThe formula, written in native SQL.
-