MappedSuperClass wrongly generated if it contains an operation
--------------------------------------------------------------

         Key: EJB-117
         URL: http://jira.andromda.org/browse/EJB-117
     Project: EJB Cartridge
        Type: Bug

    Versions: 3.3    
 Environment: Win XP Pro SP3, Java 1.5.0_19, Maven 2.0.10, andromda-3.3, 
ejb-cartridge 1.0-SNAPSHOT, UML 2, MagicDraw 12.1
    Reporter: heapifyman
 Assigned to: Vance Karimi 


I have the following model (see also attached image):
interface CaseComponent
+getIdAttribute() : Attribute
 ^
 |
 |
<<Entity>>
<<MappedSuperClass>>
abstract class CaseComponentImpl implements CaseComponent
 ^
 |
 |
<<Entity>>
MaterialListe extends CaseComponentImpl
<<Identifier>> +id : Long

There are several other entities which shall also extend CaseComponentImpl.

With this model the cartridge generates the following:
@javax.persistence.MappedSuperclass
public abstract class CaseComponentImplEmbeddable implements Serializable, 
CaseComponent

complete with:
@javax.persistence.Id
@javax.persistence.GeneratedValue(strategy = 
javax.persistence.GenerationType.AUTO)
@javax.persistence.Column(name = "ID", nullable = false, insertable = true, 
updatable = true)
public java.lang.Long getId()

and
@javax.persistence.Entity
@javax.persistence.Table(name = "CASE_COMPONENT_IMPL")
@javax.persistence.NamedQuery(<some query>)
public abstract class CaseComponentImpl extends CaseComponentImplEmbeddable

This seems wrong to me. CaseComponentImplEmbeddable should not have an id and 
CaseComponentImpl should not get the @Entity, @Table and @NamedQuery 
annotations.

If I make CaseComponentImpl not abstract, CaseComponentImplEmbeddable does not 
get the id property, but CaseComponentImpl still gets the @Entity, etc. 
annotations and uses the non-existent method getID() in its compareTo method. 
Aparty from that MaterialLIste then extends CaseComponentImplEmbeddable, which 
does not provide the getIdAttribute method. Thus, I get several compilation 
errors.

If I'm not mistaken, my desired class hierarchy should be no problem since I 
can deploy it just fine if I create it manually.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.andromda.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

Reply via email to