[ 
https://issues.apache.org/jira/browse/OPENJPA-2305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13590911#comment-13590911
 ] 

Pinaki Poddar commented on OPENJPA-2305:
----------------------------------------

As per spec, the inheritance hierarchy of the generated metamodel class must 
mirror that of the domain classes. However we need exact class as the generic 
parameter of the declared meta-fields. So the solution is as follows

@Entity public class Base { private int x;}
@Entity public class Derived extends Base {}

public class Base_ {public static volatile SingularAttribute<Base,Integer> x;}
public class derived_ extends Base_ {public static volatile 
SingularAttribute<Derived,Integer> x;} // rewrite the base variable with owning 
class as generic parameter
  
                
> Canonical MetaModel class generation should not use inhertence
> --------------------------------------------------------------
>
>                 Key: OPENJPA-2305
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2305
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: criteria
>    Affects Versions: 2.2.1.1
>            Reporter: Pinaki Poddar
>            Assignee: Pinaki Poddar
>             Fix For: 2.3.0, 2.2.1.1
>
>
> The generated source code for canonical metamodel classes mirrored the same 
> inheritance hierarchy of the domain classes. This strategy exposed an error 
> that resulted in wrong target SQL query under the following domain model 
> a) A @MappedSuperClass M defined a primary key field x
> b) The primary key field x is an @EmbeddedId E
> c) An @Entity class D derived from M and navigated to the fields of E via x
> The solution is to generate canonical class D_.java as a flattened structure 
> instead of inheriting from M_.java (as is done currently). 

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