task #9964
openImprove matching of collections
0%
Description
For details see #9905.
Maybe we need to switch to HQL (https://stackoverflow.com/questions/3940371/how-do-i-select-the-nth-element-in-a-collection-by-the-number-in-an-indexcolumn, https://stackoverflow.com/questions/37605583/how-to-query-an-element-inside-an-indexed-collection-using-hql) for match strategies or use JPA for indexes: https://www.logicbig.com/tutorials/java-ee-tutorial/jpa/criteria-api-collection-operations.html
Also we need to make it generic. Currently we only have a workaround for team.teamMembers to avoid performance issues during parse result deduplication for names.
Also there is the problem that TeamOrPesonBase can't be used, e.g. in Reference.authorTeam.* which is an instance of TeamOrPersonBase. TeamOrPersonBase does not have teamMembers as attribute. In #9905 we created a dirty workaround for this by using the "level" parameter for recursion. With this workaround MatchMode.Match for collections is only included in criteria if they exist on top level. This is usually ok as differences on lower levels do usually not lead to a large number of records that are loaded unnecessarily (the strongest filtering effect usually happens on top level). Hibernate issues maybe related are http://igaffa.blogspot.com/2013/01/fix-for-orghibernatemappingexception.html and https://hibernate.atlassian.net/browse/HHH-6562
Related issues
Updated by Andreas Müller about 2 years ago
- Copied from bug #9905: Parser is slow for names with authorteams added