Sorry but when I look this : <class-descriptor class="B" table="B"> <field-descriptor name="id" column="ID" jdbc-type="INTEGER" primarykey="true" autoincrement="true"/> <field-descriptor name="email" column="EMAIL" jdbc-type="VARCHAR"/> <reference-descriptor name="super" class-ref="A"> <foreignkey field-ref="id"/> </reference-descriptor> </class-descriptor>
I think your class is like this : class B { private int id; private String email; private A super; /* getters and setters*/ } So, it's an agregation (also extends but where is your type A attribute in B ?) and you can add criteria("B.super",null) Not sure to understand your goal ... ----- Original Message ----- From: shibin ck To: OJB Users List Sent: Friday, September 12, 2003 11:38 AM Subject: Inheritance querying problem Hi, i have 2 classes A and B. B inherits from A. i map classes A and B on multiple joined tables. my classes are class A { private int id; private String name; /* getters and setters*/ } class B extends A { private int id; private String email; /* getters and setters*/ } my descriptor file is like <class-descriptor class="A" table="A"> <field-descriptor name="id" column="ID" jdbc-type="INTEGER" primarykey="true" autoincrement="true"/> <field-descriptor name="name" column="NAME" jdbc-type="VARCHAR"/> </class-descriptor> <class-descriptor class="B" table="B"> <field-descriptor name="id" column="ID" jdbc-type="INTEGER" primarykey="true" autoincrement="true"/> <field-descriptor name="email" column="EMAIL" jdbc-type="VARCHAR"/> <reference-descriptor name="super" class-ref="A"> <foreignkey field-ref="id"/> </reference-descriptor> </class-descriptor> The problem is when i query on A class with null criteria .. it returns objects of A only ie QueryByCriteria queryOne = new QueryByCriteria (A.class, null); Collection col = broker.getCollectionByQuery (queryOne); Iterator iter = col.iterator (); while (iter.hasNext ()) { System.out.println(iter.next().getClass()); } this prints class A only ... (i'm getting B objects as A objects so i am able to get name of B objects but not email) .. If i use each class in separate table (with <extent> tag) ... it is working fine (class A and class B are printing) So my question is is there any way by which we can get child attributes by quering on parent class using <reference-descriptor name="super" ... method??? Thanks in advance shibin --------------------------------- Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.518 / Virus Database: 316 - Release Date: 11/09/2003