I've tried to keep database 'artifacts' like foreign key fields out of my object model; they're all mapped as anonymous properties right now. Is there any way to get at anonymous property values without making them explicit in the class?
L.
Luis Cruz wrote:
Hello,
Try something like this instead:
ClassA a = getAnA(); OQLQuery query = odmg.newOQLQuery(); query.create("select all from "+ ClassB.class.getName() + " where ClassA.ID = $1" ); query.bind(a.getID()); query.execute();
Documentation on using the ODMG API can be found at: http://db.apache.org/ojb/odmg-tutorial.html
Cheers, Luis Cruz
On Sat, 2004-03-13 at 04:06, Laurie Harper wrote:
Hi, I'm using OJB 1.0 RC5 with the ODMG API. Everythings working fine for OQL queries binding basic Java types (like String) but I'm getting an odd error when trying to query foreign key attributes.
If I do this:
ClassA a = getAnA(); OQLQuery query = odmg.newOQLQuery(); query.create( "select all from "+ ClassB.class.getName+ " where ClassA = $0" ); query.bind(a); query.execute();
I get an error that ClassA isn't serializable. If I make it serializable, I get a SQL exception because OJB is passing the serialized form of a as the bound value.
I'm generating my repository mappings with the xDoclet module and I'm pretty sure they're right (see below). The same code is working fine in another project (though using a much older version of OJB).
Here's what's in the repository_user.xml for the two classes:
<class-descriptor class="ClassA" table="ClassA" > <field-descriptor name="ID" column="ID" jdbc-type="INTEGER" primarykey="true" nullable="false" indexed="true" access="anonymous" /> ... </class-descriptor>
<class-descriptor class="ClassB" table="ClassB" > <field-descriptor name="ID" column="ID" jdbc-type="INTEGER" primarykey="true" nullable="false" indexed="true" access="anonymous" /> <field-descriptor name="CLASSA_ID" column="CLASSA_ID" jdbc-type="INTEGER" nullable="false" access="anonymous" /> ... <reference-descriptor name="ClassA" class-ref="ClassA" > <foreignkey field-ref="CLASSA_ID"/> </reference-descriptor> </class-descriptor>
The error I get is (once I've made ClassA serializable):
java.sql.SQLException: Wrong data type: For input string: "aced0005737200276e65742e68...
I've tried making the primary key column an int property on the class instead of using anonymous access, to no avail. Any idea what I'm doing wrong? (I admit I haven't used OJB in quite a while, so it could something stupid!)
Thanks,
L.
PS, I can post the real repository.xml and all source code if the above is insufficient.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
