This seems to be bug 942, should be fixed in CVS :
http://bugzilla.exolab.org/show_bug.cgi?id=942

Stephen Ince wrote:
I am using Castor 9.4. I can't seem to get the transient="false" for JDO to work. In my example a "UserScenario" can contain "WebResources" and a "WebResource" and contain a "WebResources" Basically I am trying to get castor to use the "allWebResources" for database persistence and use "webResources" field for xml persistence.
When I don't include the "webResources" field the database persistence piece works fine. When I do include the "webResources" field tag the database persistence engine will call the "getWebResources" method. Why? If you include the field tag, castor makes an implicit store to the database.
Here is a copy of my Map file.
<class name="com.opendemand.jdo.UserScenario" auto-complete="false" identity="userScenarioId" key-generator="MAX">
<description>Default mapping for class com.opendemand.jdo.UserScenario</description>
<map-to xml="user-scenario" table="user_scenario"/>
<cache-type type="none" />
<field name="userScenarioId" type="integer" required="false"
direct="false" transient="false">
<sql name="user_scenario_id" type="integer"/>
<bind-xml name="user-scenario-id" transient="true"/>
</field>
<field name="allWebResources" type="com.opendemand.jdo.WebResource"
collection="map" requried="false" transient="false"
get-method="getAllWebResources" set-method="setAllWebResources" >
<sql many-key="user_scenario_id" dirty="ignore"/>
<bind-xml transient="true"/>
</field>
<field name="webResources" type="com.opendemand.jdo.WebResource"
collection="collection" requried="false"
get-method="getWebResources" set-method="setWebResources" transient="true">
<bind-xml name="web-resource" node="element" transient="false"/>
</field>
</class>

<class name="com.opendemand.jdo.WebResource" identity="webResourceId" key-generator="MAX" depends="com.opendemand.jdo.UserScenario">
<description>Default mapping for class com.opendemand.jdo.WebResource</description>
<map-to table="web_resource" xml="web-resource"/>
<cache-type type="none" />
<field name="webResourceId" type="integer" required="false"
direct="false" transient="false">
<sql name="web_resource_id" type="integer" dirty="ignore" />
<bind-xml name="web-resource-id" transient="true" />
</field>
<field name="webResources" type="com.opendemand.jdo.WebResource"
required="false" direct="false" collection="collection"
get-method="getWebResources" set-method="setWebResources" transient="true" >
<bind-xml name="web-resource" node="element" auto-naming="deriveByClass" transient="false"/>
</field>
</class>


--
Mickael Guessant

----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev

Reply via email to