Hi Alen, don't know if this will solve your problem, but I see two problematic things
- Product and Category have to be 'extent aware'. see http://db.apache.org/ojb/sequencemanager.html#extentAware Means the id's have to be unique across all tables of all extent classes of BaseBusinessBean descriptor. You say that in Product and Category table both entities have id with value '1'!! Something going wrong. - Why did you define a BaseBusinessBean descriptor? Does this make sense? Do you need to query 'give me all BaseBusinessBean'? If not, don't declare such a descriptor (performance impact, reduce number of possible id's per extent class - have to extent aware,...). regards, Armin ----- Original Message ----- From: "Alen Ribic" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Sunday, June 15, 2003 11:37 PM Subject: Re: Help, wrong table being looked up! > Forgot one more thing... > Looking at SQL generated by OJB, things look perfect from there. > > SELECT DISTINCT A0.description,A0.name,A0.id FROM category A0 WHERE id like > '%' order by name > > So, it is looking in Category table, but it's returning Product object(s) as > result. > No idea... :) > > --Alen > > > ----- Original Message ----- > From: "Alen Ribic" <[EMAIL PROTECTED]> > To: "OJB Users List" <[EMAIL PROTECTED]> > Sent: Sunday, June 15, 2003 11:27 PM > Subject: Help, wrong table being looked up! > > > > Hi Everyone, > > > > I seem to be getting a strange problem in my persistence mechanism using > > OJB. > > I'm using OJB ver: 1.0 rc2. > > > > I have two value objects named Category and Product. Each have own DB > table > > there are mapped to. (same table names as class names) > > Both have common fields (Id, description) hence such classes in my system > > inherit common fields from superclass BaseBusinessBean. > > > > > > Message I get from the log is: > > > > 0 WARN [Thread-4] singlevm.PersistenceBrokerImpl - Candidate object > > [[1] Product test 01 price: 12.55 > stock: > > 8] class > > [com.baroko.ebiz.model.Product] is not a subtype of > > [com.baroko.ebiz.model.Cate > > gory] or any type of proxy. NOT INCLUDED in result collection > > > > > > As you can see above, OJB is pulling info from the wrong table. (In this > > case Product table instead of Category table) > > It did the right thing with regards to the identity field. There is only > one > > Id so far in Category table and that's Id: 1. But it looked up the Id: 1 > in > > Product instead of Category table. > > So, I got results for row where Id = 1 from Product instead of Category > > table. > > > > Here is my code snippet... > > ... > > broker set here.. > > ... > > public List apply(Object query) > > throws PersistenceException { > > ArrayList categoryList = null; > > try { > > if (!(query instanceof String)) > > throw new PersistenceException( > > Constants.PERSISTENCE_LIST_FAILED_INVALID_QUERY); > > Criteria crt = new Criteria(); > > crt.addSql((String)query); > > QueryByCriteria queryByCriteria = > > QueryFactory.newQuery(Category.class, crt, true); > > Collection results = broker.getCollectionByQuery(queryByCriteria); > > categoryList = new ArrayList(results); > > } catch(Exception ex) { > > throw new PersistenceException( > > Constants.PERSISTENCE_LIST_FAILED); > > } > > return (List)categoryList; > > } > > > > > > > > Lastly the repository mappings... > > > > <!-- Definitions... --> > > <class-descriptor > > class="com.baroko.ebiz.model.Product" > > table="product" > > > > > <field-descriptor id="8" > > name="id" > > column="id" > > jdbc-type="INTEGER" > > primarykey="true" > > autoincrement="true" > > /> > > <field-descriptor id="9" > > name="name" > > column="name" > > jdbc-type="VARCHAR" > > /> > > <field-descriptor id="10" > > name="price" > > column="price" > > jdbc-type="FLOAT" > > /> > > <field-descriptor id="11" > > name="stock" > > column="stock" > > jdbc-type="SMALLINT" > > /> > > <field-descriptor id="12" > > name="description" > > column="description" > > jdbc-type="VARCHAR" > > /> > > </class-descriptor> > > > > > > <class-descriptor > > class="com.baroko.ebiz.model.Category" > > table="category" > > > > > <field-descriptor id="13" > > name="id" > > column="id" > > jdbc-type="SMALLINT" > > primarykey="true" > > autoincrement="true" > > /> > > <field-descriptor id="14" > > name="name" > > column="name" > > jdbc-type="VARCHAR" > > /> > > <field-descriptor id="15" > > name="description" > > column="description" > > jdbc-type="VARCHAR" > > /> > > </class-descriptor> > > > > <class-descriptor > > class="com.baroko.ebiz.model.BaseBusinessBean" > > > > > <extent-class class-ref="com.baroko.ebiz.model.Category" /> > > <extent-class class-ref="com.baroko.ebiz.model.Product" /> > > </class-descriptor> > > > > > > Note that I can get the list of products with no problems with almost an > > identical method as one above for category list. > > > > Sorry for inconvenience to anyone, if this is maybe some stupid problem on > > my side. > > I just can't spot anything that would be causing this problem especially > > when it works fine with product list. > > > > Thanks > > --Alen > > > > > > > > --------------------------------------------------------------------- > > 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] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
