openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jody Grassel <fyrew...@gmail.com>
Subject Re: TABLE_PER_CLASS does not work as described in JSR-220 (JPA-1.0)
Date Thu, 21 May 2009 00:46:53 GMT
Looking at your data model, you're intending the class AbstractFoo to define
new persistent types without AbstractFoo having a table mapping.  Instead of
annotating the abstract class with the @Entity annotation, I think you
should use the @MappedSuperclass annotation.
What I think should be determined is if an abstract class annotated with
@Entity should "reset" the inheritance hierarchy (as the only reason for
the existence of such a definition would be to provide an inheritance base,
abstract types can't have their own instance, so they must be extended by
another class.) or throw an error during enhancement/runtime.

On Wed, May 20, 2009 at 6:19 PM, Serge Bogatyrev
<sergebogatyrjov@gmail.com>wrote:

> I've created an issue: OPENJPA-1096 <
> https://issues.apache.org/jira/browse/OPENJPA-1096>
>
>
> Craig L Russell wrote:
>
>> Hi Serge,
>>
>> Could you please open a JIRA so we can track this issue?
>>
>> Thanks,
>>
>> Craig
>>
>> On May 11, 2009, at 11:03 AM, Serge Bogatyrev wrote:
>>
>>  This mixed strategy can be very usefull. But obviously there is
>>> uncompatibility with standards. I think that additional annotation can be
>>> used to change standard behaviour. So, at this example strict
>>> TABLE_PER_CLASS strategy should work without any additional annotations. And
>>> to get the mixed strategy we shoud add @Inheritance annotation to some class
>>> in hierarchy (e.g. AbsractFoo).
>>>
>>> Pinaki Poddar:
>>>
>>>> You are right. OpenJPA should use the inheritance strategy used at the
>>>> root
>>>> of the hierarchy throughout the derived tree. The extra strategy
>>>> specification perhaps is resulting from the facility to support mixed
>>>> strategy. Needs further investigation...
>>>>
>>>>
>>>> hallmit wrote:
>>>>
>>>>  Thanks guys, I put
>>>>> @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
>>>>> to AbstractFoo and now it works fine...I have also put
>>>>> @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) to the first
>>>>> concrete class of my class hierarchy otherwise the SINGLE_TABLE
>>>>> strategy
>>>>> is used for the branch.    I thought it was sufficient to annotate the
>>>>> root class with
>>>>> TABLE_PER_CLASS and so all classes in the hierarchy would have the same
>>>>> strategy...apparently not for OpenJPA...
>>>>>
>>>>> JSR 220 (JPA-1.0) spec talk :
>>>>>
>>>>> "The Inheritance annotation defines the inheritance strategy to be used
>>>>> for an entity class hierarchy.
>>>>> It is specified on the entity class that is the root of the entity
>>>>> class
>>>>> hierarchy."
>>>>> ...
>>>>>    In any case thank you very much for your help!
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> -----
>>>> Pinaki Poddar                      http://ppoddar.blogspot.com/
>>>>
>>>> http://www.linkedin.com/in/pinakipoddar
>>>> OpenJPA PMC Member/Committer
>>>> JPA Expert Group Member
>>>>
>>>>
>>>
>> Craig L Russell
>> Architect, Sun Java Enterprise System http://db.apache.org/jdo
>> 408 276-5638 mailto:Craig.Russell@sun.com
>> P.S. A good JDO? O, Gasp!
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message