Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » Teneo: Issue with Merge()(Teneo: Issue with Merge())
Teneo: Issue with Merge() [message #1228004] |
Mon, 06 January 2014 07:24 |
Chandre Gowda Messages: 56 Registered: April 2013 |
Member |
|
|
Hello,
Iam using TENEO framework and tried to update then object using session.merge().But Iam getting below error:
'Entity not Merged: object references an unsaved transient instance - save the transient instance before flushing'.
The object has list of children of same type. Also I have set following two properties during datastore initialization.
props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_CONTAINMENT, "REMOVE,REFRESH,PERSIST,MERGE");
props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_NON_CONTAINMENT, "MERGE,PERSIST,REFRESH,DELETE_ORPHAN");
Thanks
Chandru
|
|
|
Re: Teneo: Issue with Merge() [message #1228013 is a reply to message #1228004] |
Mon, 06 January 2014 07:46 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Chandre,
Yes with these properties things should be fine normally. The next thing is to debug into hibernate, set a breakpoint
where hibernate throws the exception, check which entity it is and then check the hbm (dataStore.getMappingXML) if
indeed the mapping is correct.
If you don't see any special then can you post the hbm here with info on which entity/association it fails?
gr. Martin
On 01/06/2014 08:24 AM, Chandre Gowda wrote:
> Hello,
>
> Iam using TENEO framework and tried to update then object using session.merge().But Iam getting below error:
> 'Entity not Merged: object references an unsaved transient instance - save the transient instance before flushing'.
> The object has list of children of same type. Also I have set following two properties during datastore initialization.
>
> props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_CONTAINMENT, "REMOVE,REFRESH,PERSIST,MERGE");
> props.setProperty(PersistenceOptions.CASCADE_POLICY_ON_NON_CONTAINMENT, "MERGE,PERSIST,REFRESH,DELETE_ORPHAN");
>
> Thanks
> Chandru
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@xxxxxxxx - mtaal@xxxxxxxx
Web: www.springsite.com - www.elver.org
|
|
|
Re: Teneo: Issue with Merge() [message #1228488 is a reply to message #1228013] |
Tue, 07 January 2014 10:38 |
Chandre Gowda Messages: 56 Registered: April 2013 |
Member |
|
|
Thanks Martin.
Please find the hbm below. Iam getting issues when i try to merge execution with children into db. List of children refers to list of executions.
<subclass name="com.test.ExecutionImpl" entity-name="Execution" abstract="false" lazy="false" extends="PropertyContainer" discriminator-value="Execution">
<meta attribute="eclassName" inherit="false">Execution</meta>
<meta attribute="epackage" inherit="false">http://execution/1.0</meta>
<property name="comment" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
<column not-null="false" unique="false" name="`comment`"/>
</property>
<property name="uri" lazy="false" insert="true" update="true" not-null="false" unique="false" type="core.URI">
<column not-null="false" unique="false" name="`uri`"/>
</property>
<property name="id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
<column not-null="false" unique="false" name="`id`"/>
</property>
<property name="name" lazy="false" insert="true" update="true" not-null="false" unique="false" type="java.lang.String">
<column not-null="false" unique="false" name="`name`"/>
</property>
<list name="slots" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
<key update="true">
<column name="`slot_owninginstance_e_id`" unique="false"/>
</key>
<list-index column="`execution_slots_idx`"/>
<one-to-many entity-name="Slot"/>
</list>
<many-to-one name="executable" entity-name="Executable" lazy="false" cascade="merge,persist,save-update,lock,refresh" foreign-key="execution_executable" insert="true" update="true" not-null="false">
<column not-null="false" unique="false" name="`executable_executable_e_id`"/>
</many-to-one>
<one-to-one name="executor" entity-name="Executor" cascade="merge,persist,save-update,lock,refresh" lazy="false" property-ref="execution"/>
<list name="children" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
<key foreign-key="execution_children_key" update="true">
<column name="`execution_children_e_id`" unique="false"/>
</key>
<list-index column="`execution_children_idx`"/>
<one-to-many entity-name="Execution"/>
</list>
<list name="settings" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
<key foreign-key="execution_settings_key" update="true">
<column name="`execution_settings_e_id`" unique="false"/>
</key>
<list-index column="`execution_settings_idx`"/>
<one-to-many entity-name="Property"/>
</list>
<list name="events" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
<key foreign-key="execution_events_key" update="true">
<column name="`execution_events_e_id`" unique="false"/>
</key>
<list-index column="`execution_events_idx`"/>
<one-to-many entity-name="ExecutionEvent"/>
</list>
</subclass>
|
|
|
Re: Teneo: Issue with Merge() [message #1228540 is a reply to message #1228488] |
Tue, 07 January 2014 13:10 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Chandre,
Okay and the transient instance is an instance of Execution (and the association it uses to get their is the
'children')? I mean this is what your debugging found?
To be sure that I/we are looking at the correct association...
(I ask because the mapping looks fine to me, the merge is part of the cascade settings.., so not sure why it does not work)
gr. Martin
On 01/07/2014 11:38 AM, Chandre Gowda wrote:
> Thanks Martin.
> Please find the hbm below. Iam getting issues when i try to merge execution with children into db. List of children
> refers to list of executions.
>
> <subclass name="com.test.ExecutionImpl" entity-name="Execution" abstract="false" lazy="false"
> extends="PropertyContainer" discriminator-value="Execution">
> <meta attribute="eclassName" inherit="false">Execution</meta>
> <meta attribute="epackage" inherit="false">http://execution/1.0</meta>
> <property name="comment" lazy="false" insert="true" update="true" not-null="false" unique="false"
> type="java.lang.String">
> <column not-null="false" unique="false" name="`comment`"/>
> </property>
> <property name="uri" lazy="false" insert="true" update="true" not-null="false" unique="false" type="core.URI">
> <column not-null="false" unique="false" name="`uri`"/>
> </property>
> <property name="id" lazy="false" insert="true" update="true" not-null="false" unique="false" type="long">
> <column not-null="false" unique="false" name="`id`"/>
> </property>
> <property name="name" lazy="false" insert="true" update="true" not-null="false" unique="false"
> type="java.lang.String">
> <column not-null="false" unique="false" name="`name`"/>
> </property>
> <list name="slots" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
> <key update="true">
> <column name="`slot_owninginstance_e_id`" unique="false"/>
> </key>
> <list-index column="`execution_slots_idx`"/>
> <one-to-many entity-name="Slot"/>
> </list>
> <many-to-one name="executable" entity-name="Executable" lazy="false"
> cascade="merge,persist,save-update,lock,refresh" foreign-key="execution_executable" insert="true" update="true"
> not-null="false">
> <column not-null="false" unique="false" name="`executable_executable_e_id`"/>
> </many-to-one>
> <one-to-one name="executor" entity-name="Executor" cascade="merge,persist,save-update,lock,refresh"
> lazy="false" property-ref="execution"/>
> <list name="children" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
> <key foreign-key="execution_children_key" update="true">
> <column name="`execution_children_e_id`" unique="false"/>
> </key>
> <list-index column="`execution_children_idx`"/>
> <one-to-many entity-name="Execution"/>
> </list>
> <list name="settings" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
> <key foreign-key="execution_settings_key" update="true">
> <column name="`execution_settings_e_id`" unique="false"/>
> </key>
> <list-index column="`execution_settings_idx`"/>
> <one-to-many entity-name="Property"/>
> </list>
> <list name="events" lazy="false" cascade="persist,merge,delete,refresh,save-update,lock">
> <key foreign-key="execution_events_key" update="true">
> <column name="`execution_events_e_id`" unique="false"/>
> </key>
> <list-index column="`execution_events_idx`"/>
> <one-to-many entity-name="ExecutionEvent"/>
> </list>
> </subclass>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@xxxxxxxx - mtaal@xxxxxxxx
Web: www.springsite.com - www.elver.org
|
|
| |
Goto Forum:
Current Time: Tue Mar 19 10:41:06 GMT 2024
Powered by FUDForum. Page generated in 0.01915 seconds
|