[ https://issues.apache.org/jira/browse/OPENJPA-1465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Milosz Tylenda updated OPENJPA-1465: ------------------------------------ Description: A request for query support over multi-valued elements within XML column has been posted on the user mailing list [1]. We currently support only queries over single-valued elements. I have investigated the matter a bit using MySQL. It seems that a query working correctly over multi-valued elements can be constructed like this ("street" is multi-valued): select * from TORDER t0 where ExtractValue(t0.shipAddress,'count(/*/street[text()="Lelevela"]) >= 1') = 1; or select * from TORDER t0 where ExtractValue(t0.shipAddress,'count(/*/street[text()="Lelevela"])') >= 1; What worries me is that such a query might not be indexable even if the database supports indexes over expressions. [1] http://openjpa.208410.n2.nabble.com/quot-collection-valued-path-quot-ArgumentException-when-querying-based-on-multi-valued-elements-in-an-td4162113.html [2] http://openjpa.208410.n2.nabble.com/JPA-XmlValueHandler-doesn-t-work-with-Multi-Valued-fileds-td7582589.html was: A request for query support over multi-valued elements within XML column has been posted on the user mailing list [1]. We currently support only queries over single-valued elements. I have investigated the matter a bit using MySQL. It seems that a query working correctly over multi-valued elements can be constructed like this ("street" is multi-valued): select * from TORDER t0 where ExtractValue(t0.shipAddress,'count(/*/street[text()="Lelevela"]) >= 1') = 1; or select * from TORDER t0 where ExtractValue(t0.shipAddress,'count(/*/street[text()="Lelevela"])') >= 1; What worries me is that such a query might not be indexable even if the database supports indexes over expressions. [1] http://n2.nabble.com/collection-valued-path-ArgumentException-when-querying-based-on-multi-valued-elements-in-an-XML-colun-tp4162113p4162113.html > Queries over multi-valued elements within XML column > ---------------------------------------------------- > > Key: OPENJPA-1465 > URL: https://issues.apache.org/jira/browse/OPENJPA-1465 > Project: OpenJPA > Issue Type: Improvement > Components: query, sql > Affects Versions: 1.2.1 > Reporter: Milosz Tylenda > > A request for query support over multi-valued elements within XML column has > been posted on the user mailing list [1]. We currently support only queries > over single-valued elements. > I have investigated the matter a bit using MySQL. It seems that a query > working correctly over multi-valued elements can be constructed like this > ("street" is multi-valued): > select * from TORDER t0 where > ExtractValue(t0.shipAddress,'count(/*/street[text()="Lelevela"]) >= 1') = 1; > or > select * from TORDER t0 where > ExtractValue(t0.shipAddress,'count(/*/street[text()="Lelevela"])') >= 1; > What worries me is that such a query might not be indexable even if the > database supports indexes over expressions. > [1] > http://openjpa.208410.n2.nabble.com/quot-collection-valued-path-quot-ArgumentException-when-querying-based-on-multi-valued-elements-in-an-td4162113.html > [2] > http://openjpa.208410.n2.nabble.com/JPA-XmlValueHandler-doesn-t-work-with-Multi-Valued-fileds-td7582589.html -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira