CompositeUserType is Hibernate’s extension point for mapping a composite value as multiple individually queryable properties. A MonetaryAmount mapping can expose amount and currency, allowing queries such as select avg(i.buyNowPrice.amount) from Item i. section 6.3.3
Mapping two monetary prices
An Item can map buyNowPrice as USD and initialPrice as EUR, using distinct column pairs such as BUYNOWPRICE_AMOUNT and BUYNOWPRICE_CURRENCY. Tests verify values like 1.1 USD and 2.00 EUR.
