[ 
https://issues.apache.org/jira/browse/OPENJPA-2295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Helen Xu updated OPENJPA-2295:
------------------------------

    Description: 
I noticed right now the queryKey is used as the map key for 
metadataRepository._queries, but when it goes to look up, it always uses query 
name. The query metadata lookup would be faster if we switch to query name as 
the key.

I double checked the JPA Spec and OPENJPA menu, it seems only support the named 
query creation using query name, which means the query name should be unique in 
one EntityManager. It doesn't matter in which entity the query is defined. So 
using name as the map look up key should be good enough.

when there are two queries with the same name defined in the different 
entities, it will only keep the query metadata for the first loaded named query 
and ignore the rest plus log a warning message like this:
 WARN   [main] openjpa.MetaData - Ignoring duplicate query "X" in "class 
org.apache.openjpa.A". A query with the same name been already declared in 
"class org.apache.openjpa.B".

  was:
I noticed that it used the queryKey as the map key for 
metadataRepository._queries, but when it goes to look up, it always uses query 
name. 

I double checked the JPA Spec and OPENJPA menu, it seems only support the named 
query creation using query name, which means the query name should be unique in 
one EntityManager. It doesn't matter in which entity the query is defined. So 
using name as the map look up key should be good enough.

when there are two queries with the same name defined in the different 
entities, it will only keep the query metadata for the first loaded named query 
and ignore the rest plus log a warning message like this:
 WARN   [main] openjpa.MetaData - Ignoring duplicate query "X" in "class 
org.apache.openjpa.A". A query with the same name been already declared in 
"class org.apache.openjpa.B".

    
> speed up query metadata lookup
> ------------------------------
>
>                 Key: OPENJPA-2295
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2295
>             Project: OpenJPA
>          Issue Type: New Feature
>          Components: performance, query
>            Reporter: Helen Xu
>            Assignee: Helen Xu
>            Priority: Minor
>         Attachments: OPENJPA-2295.patch
>
>
> I noticed right now the queryKey is used as the map key for 
> metadataRepository._queries, but when it goes to look up, it always uses 
> query name. The query metadata lookup would be faster if we switch to query 
> name as the key.
> I double checked the JPA Spec and OPENJPA menu, it seems only support the 
> named query creation using query name, which means the query name should be 
> unique in one EntityManager. It doesn't matter in which entity the query is 
> defined. So using name as the map look up key should be good enough.
> when there are two queries with the same name defined in the different 
> entities, it will only keep the query metadata for the first loaded named 
> query and ignore the rest plus log a warning message like this:
>  WARN   [main] openjpa.MetaData - Ignoring duplicate query "X" in "class 
> org.apache.openjpa.A". A query with the same name been already declared in 
> "class org.apache.openjpa.B".

--
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

Reply via email to