You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by "Plummer, Greg" <Gr...@LibertyMutual.com> on 2003/08/08 15:19:12 UTC
assertValidPkFields
Hi All,
I'm new to OJB. I'm getting the following stack trace when trying to insert an object. The primary key field in the object has a value of 0, which I assume is valid, but in the PersistenceBrokerImpl.storeToDb method, the pkValues variable contains a null rather than a 0. Any ideas on what I'm doing wrong here?
Thanks!
Greg Plummer
org.apache.ojb.broker.PersistenceBrokerException: assertValidPkFields failed for Object of type: ojbtests.Client on insert
at org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1942)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1889)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:665)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:160)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:160)
at ojbtests.OjbCreateDb.populateClient(OjbCreateDb.java:50)
at ojbtests.OjbCreateDb.populateClients(OjbCreateDb.java:39)
at ojbtests.OjbCreateDb.run(OjbCreateDb.java:31)
at ojbtests.OjbCreateDb.main(OjbCreateDb.java:27)
Here's the db info:
<jdbc-connection-descriptor
jcd-alias="default"
default-connection="true"
platform="Hsqldb"
jdbc-level="2.0"
driver="org.hsqldb.jdbcDriver"
protocol="jdbc"
subprotocol="hsqldb"
dbalias="C:/My Data/projects/PM Affinity/TestDb/Affinity"
username="sa"
password=""
batch-mode="false"
>
<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">
<attribute attribute-name="grabSize" attribute-value="5"/>
</sequence-manager>
</jdbc-connection-descriptor>
<class-descriptor
class="ojbtests.Client"
table="CLIENT"
>
<field-descriptor
name="id"
column="ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="false"
access="anonymous"
/>
<field-descriptor
name="name"
column="NAME"
jdbc-type="VARCHAR"
/>
<collection-descriptor
name="clientGroups"
element-class-ref="ojbtests.ClientGroup">
<inverse-foreignkey field-ref="clientId" />
</collection-descriptor>
</class-descriptor>
<class-descriptor
class="ojbtests.ClientGroup"
table="CLIENT_GROUP"
>
<field-descriptor
name="id"
column="ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="false"
/>
<field-descriptor
name="name"
column="NAME"
jdbc-type="VARCHAR"
/>
<field-descriptor
name="clientId"
column="CLIENT_ID"
jdbc-type="INTEGER"
access="anonymous"
/>
</class-descriptor>