openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Laird Nelson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-1360) ReverseMappingTool omits nullable, length, etc. when ClassMapping.setEmbedded(true) is called
Date Fri, 23 Oct 2009 19:41:59 GMT

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

Laird Nelson commented on OPENJPA-1360:
---------------------------------------

I think there may be something wrong with MetaDataRepository.java line 727 and 728.  The comment
reads:
            // embedded-only metadata doesn't have mapping, so always loaded

Immediately beneath that is a block that then proceeds to do some sophisticated loading of
metadata in the event a ClassMetaData is NOT set to be embedded only.

As it turns out, a MappedSuperclass is allowed, right?, to "have mapping".  Specifically,
a MappedSuperclass may certainly have @Column annotations.

So I think that whatever magic machinery (and I've gone goggle eyed trying to figure out exactly
what that machinery is) below this point that is responsible for loading up the information
necessary to determine that a @Column annotation should be output is being short-circuited.

> ReverseMappingTool omits nullable, length, etc. when ClassMapping.setEmbedded(true) is
called
> ---------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1360
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1360
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: tooling
>    Affects Versions: 1.3.0, 2.0.0
>            Reporter: Laird Nelson
>
> In my ReverseCustomizer, I call classMapping.setEmbedded(true).  This is because for
a variety of reasons I need the code that is generated by the ReverseMappingTool to be @MappedSuperclasses,
not @Entities.
> Indeed when I do this, the resulting class is a @MappedSuperclass (great!) BUT all of
the length and nullable and other @Column attributes are missing.  In other words, all simple
fields receive only a @Basic annotation, with no attributes, and nothing else.  In addition,
the class declaration receives a @Table annotation with no attributes.  (I'm using the command
line flag that instructs the ReverseMappingTool to generate annotations.)
> Ideally I'd like the generated source code to look identical to the source code that
would be generated for a ClassMapping where setEmbedded(true) was never called, except of
course that I want the @Entity annotation to be replaced with @MappedSuperclass.
> Obviously if there is a better way from within a ReverseCustomizer for me to accomplish
my (very odd) goals (mandated by a strange development process and a 30-year-old database),
I am all ears.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message