In my mapping (see attached file) I have a class
"org.dharma.job.TaskWrapper" that has 2 items in it's identity field.
One of the items points to a field that is of type "integer". The other
item points to a field that is of type "org.dharma.job.JobWrapper".
When I try to create a job with a task, JDO throws the following
exception:
Exception in thread "main" No class found for org.dharma.job.JobWrapper.
at org.postgresql.Connection.putObject(Connection.java:812)
at
org.postgresql.jdbc2.PreparedStatement.setObject(PreparedStatement.java:596)
at org.exolab.castor.jdo.engine.SQLEngine.create(SQLEngine.java:561)
at org.exolab.castor.persist.ClassMolder.create(ClassMolder.java:891)
at org.exolab.castor.persist.LockEngine.create(LockEngine.java:458)
at
org.exolab.castor.persist.TransactionContext.create(TransactionContext.java:803)
at
org.exolab.castor.jdo.engine.DatabaseImpl.create(DatabaseImpl.java:338)
at org.dharma.middleware.TestJDO.<init>(TestJDO.java:73)
at org.dharma.middleware.TestJDO.main(TestJDO.java:36)
Is it not possible to have a complex identity field like that, or am I
doing something else wrong?
Thanks
--
Jesse Greenwald <[EMAIL PROTECTED]>
Kansas State University
<!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
<class name="org.dharma.job.JobWrapper"
identity="id">
<map-to table="job" xml="job"/>
<field name="id" type="integer">
<sql name="id"/>
<xml name="id" type="integer"/>
</field>
<field collection="vector" name="task" type="org.dharma.job.TaskWrapper"
get-method="getTaskVector"
set-method="setTaskVector">
<xml name="task" node="element"/>
<sql/>
</field>
<field name="status-text" type="string"
set-method="setStatusText"
get-method="getStatusText">
<sql name="status_text"/>
<xml name="status-text" type="string"/>
</field>
<field name="status-code" type="integer"
set-method="setStatusCode"
get-method="getStatusCode">
<sql name="status_code"/>
<xml name="status-code" type="integer"/>
</field>
</class>
<!-- Mapping for Task -->
<class name="org.dharma.job.TaskWrapper"
identity="job id" depends="org.dharma.job.JobWrapper">
<map-to table="task" xml="task"/>
<field name="job" type="org.dharma.job.JobWrapper">
<sql name="job"/>
</field>
<field name="id" type="integer">
<sql name="id"/>
<xml name="id" node="element"/>
</field>
<field name="type" type="string" >
<sql name="type"/>
<xml name="type" node="element"/>
</field>
<field name="resource" collection="vector" type="org.dharma.job.ResourceWrapper"
get-method="getResourceVector"
set-method="setResourceVector">
<xml name="resource" node="element"/>
<sql/>
</field>
<field collection="vector" name="dependency" type="org.dharma.job.DependencyWrapper"
get-method="getDependencyVector"
set-method="setDependencyVector">
<sql/>
<xml name="dependency" node="element"/>
</field>
<field name="status-text" type="string"
set-method="setStatusText"
get-method="getStatusText">
<sql name="status_text"/>
<xml name="status-text" type="string"/>
</field>
<field name="status-code" type="integer"
set-method="setStatusCode"
get-method="getStatusCode">
<sql name="status_code"/>
<xml name="status-code" type="integer"/>
</field>
</class>
<!-- DependencyWrapper -->
<class name="org.dharma.job.DependencyWrapper"
identity="dependency" depends="org.dharma.job.TaskWrapper">
<map-to table="task_dependencies" xml="dependency"/>
<field name="job" type="org.dharma.job.JobWrapper">
<sql name="job"/>
</field>
<field name="task" type="org.dharma.job.TaskWrapper">
<sql name="task"/>
</field>
<field name="dependency" type="integer">
<sql name="dependency"/>
<xml name="dependency" type="integer"/>
</field>
</class>
<!-- Mapping for Resource -->
<class name="org.dharma.job.ResourceWrapper"
identity="id" depends="org.dharma.job.TaskWrapper">
<map-to table="resource" xml="resource"/>
<field name="job" type="org.dharma.job.JobWrapper">
<sql name="job"/>
</field>
<field name="task" type="org.dharma.job.TaskWrapper">
<sql name="task"/>
</field>
<field name="id" type="integer">
<sql name="id"/>
<xml name="id" node="element"/>
</field>
<field name="type" type="string" >
<sql name="type"/>
<xml name="type" node="element"/>
</field>
<field collection="vector" name="attribute" type="org.dharma.job.Attribute"
get-method="getAttributeVector"
set-method="setAttributeVector">
<sql/>
<xml name="attribute" node="element"/>
</field>
<field name="url" type="string">
<sql name="url"/>
<xml name="url" node="element"/>
</field>
<field name="data">
<sql name="data"/>
<xml name="data" node="element"/>
</field>
</class>
<!-- Attribute -->
<class name="org.dharma.job.Attribute" identity="name">
<map-to xml="attribute" table="attributes"/>
<field name="name" type="string">
<sql name="name"/>
<xml name="name" node="element"/>
</field>
<field name="value">
<sql name="value"/>
<xml name="value" node="element"/>
</field>
</class>
</mapping>