Annotation Strategy not working
-------------------------------
Key: OPENJPA-1116
URL: https://issues.apache.org/jira/browse/OPENJPA-1116
Project: OpenJPA
Issue Type: Bug
Components: jdbc
Affects Versions: 2.0.0
Environment: Windows XP, openjpa-2.0.0 source code
Reporter: Ashish Paliwal
I had 2 entities, Person and Address where person had id, age, name and
address_id and person had id and city.
I tried to apply the Strategy on Address so that upon execution of JPQL query
"Select p from Person p" the SQL query fired should make Inner Join rather than
the default Left Outer Join.
I created a Strategy class InnerJoinStrategy that makes sure this happens by
overriding the selectEagerJoin() method and gave @Strategy(value =
"somepackage.InnerJoinStrategy" ) in Person class before getAddress() method.
But unexpectedly, it was still making the LeftOuterJoin rather than the desired
InnerJoin. Upon debugging I found that my strategy was never being called. I
debugged further and found that in AnnotationPersistenceMappingParser class in
parseMemberMappingAnnotations() method, for the case STRAT( which belongs to
the Strategy annotation) the strategy value was being set in ValueMappingInfo,
while from RuntimeStrategyInstaller it was being fetched from FieldMappingInfo.
I changed the code to set it in FieldMappingInfo and everything worked fine.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.