openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From farsad <fars...@hotmail.com>
Subject Re: org.springframework.dao.InvalidDataAccessApiUsageException: Encountered unmanaged object
Date Tue, 13 Nov 2007 14:31:40 GMT

Hi,

I am doing a persist(header) first followed by a persist(item).

What I don't understand is that I am doing the same thing when I persist
Item 1 (ErrorItemVO). I get the error when I try persisting Item 2
(InErrorVO). 

These two items share the same Mapped Super Class. 





klaasjan elzinga wrote:
> 
> Did you try putting the Cascade persist and cascade merge on the
> item->header relation? I think the exception means that the item is
> being persisted and encounters a not persisted (managed) header. Or
> try by calling persist(header) and after that the persist(item).
> 
> KlaasJan
> 
> On Nov 9, 2007 8:06 PM, farsad <farsady@hotmail.com> wrote:
>>
>> Yes, Thanks for responding. The ErrorItemVO is written to the DB with no
>> problems. InErrorVO gives me the problem.
>>
>>
>> Here is the mapped super class's annotation:
>> @XmlAccessorType(XmlAccessType.NONE)
>> @XmlType(name = "ErrorItem", propOrder = {
>>     "error",
>>     "header",
>>     "captureDate",
>>     "isn",
>>     "micr",
>>     "region",
>>     "currency",
>>     "businessDate",
>>     "owning",
>>     "offset"
>> })
>> public class ErrorItem {
>>
>>     @XmlElement(name = "Error", required = true)
>>     protected ErrorFile error;
>>     @XmlElement(name = "Header", type = HeaderVO.class)
>>     protected HeaderVO header;
>>     @XmlElement(name = "CaptureDate", type = String.class)
>>     @XmlJavaTypeAdapter(Adapter2 .class)
>>     @XmlSchemaType(name = "date")
>>     protected Date captureDate;
>>     @XmlElement(name = "ISN")
>>     protected String isn;
>>     @XmlElement(name = "MICR")
>>     protected MICR micr;
>>     @XmlElement(name = "Region")
>>     protected String region;
>>     @XmlElement(name = "Currency")
>>     protected Currency currency;
>>     @XmlElement(name = "BusinessDate", type = String.class)
>>     @XmlJavaTypeAdapter(Adapter2 .class)
>>     @XmlSchemaType(name = "date")
>>     protected Date businessDate;
>>     @XmlElement(name = "Owning")
>>     protected Owning owning;
>>     @XmlElement(name = "Offset")
>>     protected Offset offset;
>>
>> Here are the two entities
>>
>> public class ErrorItemVO extends ErrorItem implements Serializable {
>>
>>         private static final long serialVersionUID = 1L;
>>         private long id;
>>
>>         public long getId() {
>>                 return id;
>>         }
>>
>>         public void setId(long id) {
>>                 this.id = id;
>>         }
>>
>> }
>>
>> and
>>
>> public class InErrorVO extends ErrorItem implements Serializable {
>>
>>         private static final long serialVersionUID = 1L;
>>
>>         private long id;
>>
>>         public long getId() {
>>                 return id;
>>         }
>>
>>         public void setId(long id) {
>>                 this.id = id;
>>         }
>>
>> }
>>
>> and here is the xml mappings
>>
>>     <mapped-superclass class="com.symcor.sis.sisinternal.ErrorItem" >
>>         <attributes>
>>                         <basic name="captureDate">
>>                         <column name="PROCESSING_DATE" />
>>                         <temporal>DATE</temporal>
>>                 </basic>
>>                         <basic name="isn">
>>                         <column name="ISN" length="12" />
>>                 </basic>
>>                         <basic name="region">
>>                         <column name="REGION_CODE" />
>>                 </basic>
>>                         <basic name="businessDate">
>>                         <column name="BUSINESS_DATE" />
>>                         <temporal>DATE</temporal>
>>                 </basic>
>>                         <basic name="currency" fetch="EAGER">
>>                                 <column name="CURRENCY_TYPE" length="3"
>> />
>>                                 <enumerated>STRING</enumerated>
>>                         </basic>
>>                 <many-to-one name="header">
>>                                 <join-column name="HEADER_RECORD_ID" />
>>                         </many-to-one>
>>                 <embedded name="micr"/>
>>                 <embedded name="error"/>
>>                 <embedded name="owning"/>
>>                 <embedded name="offset"/>
>>         </attributes>
>>     </mapped-superclass>
>>
>>     <entity class="com.symcor.sis.eps.vo.HeaderVO">
>>         <table name="HEADER_RECORD">
>>                 <unique-constraint>
>>                 <column-name>SOURCE_APPLICATION_CODE</column-name>
>>                 <column-name>FCN</column-name>
>>                 <column-name>CLIENT_CODE</column-name>
>>                 </unique-constraint>
>>         </table>
>>         <attributes>
>>                 <id name="id">
>>                         <column name="HEADER_RECORD_ID" nullable="false"
>> />
>>                         <generated-value strategy="SEQUENCE"
>> generator="HeaderRecordSeq"/>
>>                                 <sequence-generator
>> name="HeaderRecordSeq"
>> sequence-name="SEQ_HEADER_RECORD_ID" initial-value="0" />
>>                         </id>
>>         </attributes>
>>     </entity>
>>     <entity class="com.symcor.sis.eps.vo.ErrorItemVO">
>>         <table name="ERROR_RECORD" />
>>                 <attributes>
>>                         <id name="id">
>>                                 <column name="ERROR_RECORD_ID"
>> nullable="false" />
>>                         <generated-value strategy="SEQUENCE"
>> generator="ErrorRecordSeq"/>
>>                         <sequence-generator name="ErrorRecordSeq"
>> sequence-name="SEQ_ERROR_RECORD_ID" initial-value="0"/>
>>                         </id>
>>                 </attributes>
>>     </entity>
>>     <entity class="com.symcor.sis.eps.vo.InErrorVO">
>>         <table name="IN_ERROR_RECORD" />
>>                 <attributes>
>>                         <id name="id">
>>                                 <column name="IN_ERROR_RECORD_ID"
>> nullable="false" />
>>                         <generated-value strategy="SEQUENCE"
>> generator="InErrorRecordSeq"/>
>>                         <sequence-generator name="InErrorRecordSeq"
>> sequence-name="SEQ_IN_ERROR_RECORD_ID" initial-value="0"/>
>>                         </id>
>>                 </attributes>
>>     </entity>
>>
>> The full error says:
>> Caused by: org.springframework.dao.InvalidDataAccessApiUsageException:
>> Encountered unmanaged object "com.symcor.sis.eps.vo.HeaderVO@1f1298d" in
>> persistent field "com.symcor.sis.sisinternal.ErrorItem.header" of managed
>> object "com.symcor.sis.eps.vo.ErrorItemVO@726e15" during flush.  However,
>> this fie
>> ld does not allow cascade persist.  You cannot flush unmanaged objects.;
>> nested exception is <4|false|0.9.6-incubating>
>> org.apache.openjpa.persistence
>> .InvalidStateException: Encountered unmanaged object
>> "com.symcor.sis.eps.vo.HeaderVO@1f1298d" in persistent field
>> "com.symcor.sis.sisinternal.ErrorItem.header" of managed object
>> "com.symcor.sis.eps.vo.ErrorItemVO@726e15" during flush.  However, this
>> field does not allow cascade persist.  You cannot
>> flush unmanaged objects.
>>
>>
>>
>>
>>
>> farsad wrote:
>> >
>> > I have never encountered this problem under the current circumstances.
>> My
>> > question is if you can have two different <entity>s (or tables in the
>> > database) inherit from the same MappedSuperClass?
>> >
>> > I have defined two entities whose corresponding classes both inherit
>> from
>> > the same class.
>> > ie. Entity A and Entity B are both inheriting from class C.
>> >
>> > <mappedsuperclass C>
>> >
>> > <entityA>
>> > <entityB>
>> >
>> > When ever I am writing to A, there is no problem.. when ever I am
>> trying
>> > to write to B, I get the exception in the subject line.
>> >
>> > Can anyone help?
>> > Thanks
>> >
>>
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/org.springframework.dao.InvalidDataAccessApiUsageException%3A-Encountered-unmanaged-object-tf4779217.html#a13673209
>>
>> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/org.springframework.dao.InvalidDataAccessApiUsageException%3A-Encountered-unmanaged-object-tf4779217.html#a13726946
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Mime
View raw message