openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: @PostPersist woes
Date Thu, 15 Nov 2007 21:52:05 GMT

On Nov 15, 2007, at 4:45 PM, Pinaki Poddar wrote:

> It is failing on an instance of InventoryItem.getId() -- is it itself
> the argument of persist() or an instance navigable from it?

This is where things get fun.  InventoryItem is a baseclass of A and B  
and we're using Joined inheritance strategy.  So yes, InventoryItem  
will be the arg to persist().  That said, see my next mail where I  
provide some detail...

>
>
> If possible, try application set identity for InventoryItem, not the
> provider.

What does that mean?  (I'm an openjpa newbie...)

geir

>
>
>
> -----Original Message-----
> From: Geir Magnusson Jr. [mailto:geir@pobox.com]
> Sent: Thursday, November 15, 2007 1:41 PM
> To: dev@openjpa.apache.org
> Subject: Re: @PostPersist woes
>
>
> On Nov 15, 2007, at 4:34 PM, Pinaki Poddar wrote:
>
>>> persist() has in it a new, unmanaged entity.
>>
>> a) If persist(a) is failing on b, what is the cascade type specified
>> on relation a.b?
>
> I'm not actually sure that it's failing on b. I guess I can try to
> figure that out.  I just know that when  I change things so that I  
> have
> an unmanaged b, it fails.
>
>>
>> b) what is the identity definition on b?
>> c) if b is using auto-assigned GeneratedValue or its id is being set
>> by application?
>>
>> -----Original Message-----
>> From: Geir Magnusson Jr. [mailto:geir@pobox.com]
>> Sent: Thursday, November 15, 2007 11:10 AM
>> To: dev@openjpa.apache.org
>> Subject: @PostPersist woes
>>
>> Woe is me :)
>>
>> I'm using @PostPersist to create some kind of machine-generated data
>> for entities on insert, and I'm running into the following problem
>> when an entity for which I called persist() has in it a new,  
>> unmanaged
>
>> entity.
>>
>> [junit-coverage] Caused by: <openjpa-1.0.0-r420667:568756 fatal user
>> error> org.apache.openjpa.util.InvalidStateException: Detected
>> reentrant flush.  Make sure your flush-time instance callback methods
>> or event listeners do not invoke any operations that require the in-
>> progress flush to complete.
>> [junit-coverage] 	at
>> org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1840)
>> [junit-coverage] 	at
>> org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1615)
>> [junit-coverage] 	at
>> org
>> .apache
>> .openjpa 
>> .kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:
>> 505)
>> [junit-coverage] 	at
>> org
>> .apache
>> .openjpa.kernel.StateManagerImpl.assignField(StateManagerImpl.java:
>> 590)
>> [junit-coverage] 	at
>> org
>> .apache
>> .openjpa
>> .kernel.StateManagerImpl.beforeAccessField(StateManagerImpl.java: 
>> 1451)
>> [junit-coverage] 	at
>> org
>> .apache
>> .openjpa 
>> .kernel.StateManagerImpl.accessingField(StateManagerImpl.java:
>> 1434)
>> [junit-coverage] 	at
>> com.joost.model.InventoryItem.getId(InventoryItem.java)
>> [junit-coverage] 	at
>> com.joost.model.InventoryItem.initPublicIdIfNull(InventoryItem.java:
>> 331)
>>
>>
>> in InventoryItem, getId is the PK, and my read of the spec says  
>> that I
>> am guaranteed to have it in @PostPersist.
>>
>> Bug?  me doing something wrong?
>>
>> geir
>>
>>
>> Notice:  This email message, together with any attachments, may
>> contain information  of  BEA Systems,  Inc.,  its subsidiaries  and
>> affiliated entities,  that may be confidential,  proprietary,
>> copyrighted  and/or legally privileged, and is intended solely for
>> the use of the individual or entity named in this message. If you
>> are not the intended recipient, and have received this message in
>> error, please immediately return this by email and then delete it.
>
>
> Notice:  This email message, together with any attachments, may  
> contain information  of  BEA Systems,  Inc.,  its subsidiaries  and   
> affiliated entities,  that may be confidential,  proprietary,   
> copyrighted  and/or legally privileged, and is intended solely for  
> the use of the individual or entity named in this message. If you  
> are not the intended recipient, and have received this message in  
> error, please immediately return this by email and then delete it.


Mime
View raw message