Traditionally, Envers has used {{HashMap}} to store the associated audited property descriptors when its mapping model was being generated.
While this choice has no impact on the aspects of capturing or retrieving entity audit history, it does introduce non-deterministic behavior that could occur between executions or releases regarding the order of properties added to the XML mapping model or the order of predicates appended to various queries. Ideally we'd prefer that the SQL being generated remain constant across executions and builds unless:
1. The user changes their mappings in some way to influence a change in property order and SQL generation. 2. We introduce new features that would result in differences in behavior.
The goal is to make sure {{MultiPropertyMapper}} and perhaps other implementations use {{LinkedHashMap}} containers instead so that the order is deterministic in nature. |
|