I get the error below when trying to save an object using JDO?  I have a Payment class that has a payment element which is type String and has an enumeration restriction of VISA, CHECK ..
 
I don't want to have a separate database table for these, what I want is castor to just write out to the payment table, payment column the value of the type.  IE : VISA, CHECK ..
 
How can I do this?
 
TIA
 
 
Snippet from xsd file:
 
   <xs:element name="payment">
    <xs:annotation>
     <xs:documentation>The type of payment, VISA, MASTERCARD, CHECK, CASH.</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
     <xs:restriction base="xs:string">
      <xs:enumeration value="VISA"/>
      <xs:enumeration value="MASTERCARD"/>
      <xs:enumeration value="CHECK"/>
      <xs:enumeration value="CASH"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
Exception Thrown:
 
Sep 15, 2004 12:28:37 PM [EXCEP] CastorHelper: getDatabase(): Nested error: org.exolab.castor.mapping.MappingException: No convertor exists for converting type java.lang.String to type com.thehomeconnect.core.data.types.PaymentType
org.exolab.castor.mapping.MappingException: No convertor exists for converting type java.lang.String to type com.thehomeconnect.core.data.types.PaymentType
 at org.exolab.castor.jdo.engine.SQLTypes.getConvertor(SQLTypes.java:504)
 at org.exolab.castor.jdo.engine.JDOMappingLoader.getTypeInfo(JDOMappingLoader.java:258)
 at org.exolab.castor.mapping.loader.MappingLoader.createFieldDesc(MappingLoader.java:680)
 at org.exolab.castor.jdo.engine.JDOMappingLoader.createFieldDesc(JDOMappingLoader.java:282)
 at org.exolab.castor.mapping.loader.MappingLoader.createFieldDescs(MappingLoader.java:615)
 at org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(MappingLoader.java:438)
 at org.exolab.castor.jdo.engine.JDOMappingLoader.createDescriptor(JDOMappingLoader.java:144)
 at org.exolab.castor.mapping.loader.MappingLoader.loadMapping(MappingLoader.java:289)
 at org.exolab.castor.jdo.engine.JDOMappingLoader.loadMapping(JDOMappingLoader.java:333)
 at org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:291)
 at org.exolab.castor.jdo.engine.DatabaseRegistry.loadDatabase(DatabaseRegistry.java:283)
 at org.exolab.castor.jdo.JDO.getDatabase(JDO.java:603)
 at com.thehomeconnect.util.CastorHelper.getDatabase(CastorHelper.java:523)
 at com.thehomeconnect.util.CastorHelper.create(CastorHelper.java:485)
 at com.thehomeconnect.core.AbstractDatabaseItem.create(AbstractDatabaseItem.java:38)
 at com.thehomeconnect.core.audit.Auditor.sendAuditMessage(Auditor.java:62)
 at com.thehomeconnect.core.audit.Auditor.access$000(Auditor.java:19)
 at com.thehomeconnect.core.audit.Auditor$AuditorGeneral.run(Auditor.java:104)
 at java.util.TimerThread.mainLoop(Timer.java:432)
 at java.util.TimerThread.run(Timer.java:382)
My Mapping file looks like:
 
 <class name="com.thehomeconnect.core.data.Payment" identity="id" key-generator="IDENTITY"  >
  <description>Default mapping for class com.thehomeconnect.core.data.Payment</description>
  <map-to table="payment" xml="payment"/>
  <field name="id" type="int" required="true">
   <bind-xml name="id" node="element"/>
   <sql name="id" type="integer"></sql>
  </field>
  <field name="orderid" type="int" required="true">
   <bind-xml name="orderid" node="element"/>
   <sql name="orderid" type="integer"></sql>
  </field>
  <field name="payment"
   type="com.thehomeconnect.core.data.types.PaymentType" required="true">
   <bind-xml name="payment" node="element"/>
   <sql name="payment" type="varchar" ></sql>
  </field>
  <field name="acctname" type="java.lang.String">
   <bind-xml name="acctname" node="element"/>
   <sql name="acctname" type="varchar"></sql>
  </field>
  <field name="acctnumber" type="long">
   <bind-xml name="acctnumber" node="element"/>
   <sql name="acctnumber" type="integer"></sql>
  </field>
  <field name="acctexpiry" type="java.util.Date">
   <bind-xml name="acctexpiry" node="element"/>
   <sql name="acctexpiry" type="timestamp"></sql>
  </field>
 </class>
 <class name="com.thehomeconnect.core.data.types.PaymentType">
  <description>Default mapping for class com.thehomeconnect.core.data.types.PaymentType</description>
  <map-to xml="paymentType"/>
 </class>
 
--ekiM
R&D Hummingbird Core Services
613.548.4355 x1535 | 613.548.7801
----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

Reply via email to