You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Laird Nelson (JIRA)" <ji...@apache.org> on 2009/10/27 20:30:59 UTC

[jira] Issue Comment Edited: (OPENJPA-1360) ReverseMappingTool omits nullable, length, etc. when ClassMapping.setEmbedded(true) is called

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

Laird Nelson edited comment on OPENJPA-1360 at 10/27/09 7:30 PM:
-----------------------------------------------------------------

Talking to myself it seems....  :-)

I've successfully implemented the workaround as described in my prior comment.

The isMappingMode(ClassMetaData) method of my serializer now looks like this:

[code]
@Override
  public boolean isMappingMode(final ClassMetaData meta) {
    return 
      this.isMappingMode() && 
      (meta.getSourceMode() & MetaDataModes.MODE_MAPPING) != 0 &&
      (meta.getEmbeddingMetaData() == null || this.isMappingMode(meta.getEmbeddingMetaData()));
  }
[/code]

      was (Author: ljnelson):
    Talking to myself it seems....  :-)

I've successfully implemented the workaround as described in my prior comment.

The isMappingMode(ClassMetaData) method of my serializer now looks like this:

{code}
@Override
  public boolean isMappingMode(final ClassMetaData meta) {
    return 
      this.isMappingMode() && 
      (meta.getSourceMode() & MetaDataModes.MODE_MAPPING) != 0 &&
      (meta.getEmbeddingMetaData() == null || this.isMappingMode(meta.getEmbeddingMetaData()));
  }
{/code}
  
> 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.