I have been working on this bug for like 4 days now. I have not been able to figure it out. Being the last big query of this project, it is kinda a bit harsh a bit late.
What I have tried is to reform the query using: String query = "SELECT r.rTitle, r.brief FROM rstep1 r, si WHERE ((si.targetmsid = 20001025) AND (si.targetmid = 200000001) AND (si.interestmsid = r.msid))" QueryBySQL qBySql = QueryFactory.newQuery(objectClass, query); Collection result = broker.getCollectionByQuery(qBySql); When I take the resulting query out of the log file and run it against the database, it works, but OJB returns nothing. I looked through the archives and saw bugs that might effect this so upgraded from RC4 to last night's nightly build. I still get nothing back from this query. I have no idea what to do now. JohnE ----- Original Message ----- From: [EMAIL PROTECTED] Date: Thursday, March 4, 2004 4:33 pm Subject: Referencing tables not in return object > > I am not sure how to do something and have tried a couple of > approaches without success. I could use some help. > > My problem comes down to the idea that I want to return a mapped > object but based on a complex query that gets messed up due to the > way OJB uses foreign keys. Is there a way to do a query on tables > not referenced in the object you seek to return? I want to > return rstep1 objects (A0), but I need to create a complex query > in other tables to get rstep1 objects. > > > What I would to have happened is something like: > SELECT A0.rTitle, A0.brief > FROM rstep1 A0, si A1 > WHERE ((A1.targetmsid = 20001025 ) > AND A1.targetmid = 200000001 ) > AND interestmsid = A0.msid > > > What I do get through OJB's use of the foreign key is: > SELECT A0.rTitle, A0.brief > FROM rstep1 A0 > INNER JOIN si A1 ON A0.msid=A1.targetmsid > WHERE ((A1.targetmsid = 20001025 ) > AND A1.targetmid = 200000001 ) > AND A1.interestmsid = A0.msid > > > Is there a way to create a query that returns a mapped object > where tables referened are not held within the object? I only > want to return values rstep1, but have to reference another table > only within the query. The query gets messed up because of the > foreign key used to generate the query. > > I have tried below without using a reference to the si table, but > si becomes ambigous. > > crit.addSql("si.targetmsid = " + jMsid); > crit.addSql("si.targetmid = " + jMid); > crit.addSql("si.interestmsid = rstep1.msid"); > > I have tried below with references to the si table and it creates > the 2nd query above with the incorrect INNER JOIN. > > crit.addEqualTo("si.targetmsid", jMsid); > crit.addEqualTo("si.targetmid", jMid); > crit.addEqualToField("si.interestmsid", "memberServiceId"); > > In this second case, if a reference is required, is there > a way that I can not have an INNER JOIN on the foreign key be created. > > > Thank you for any help. > > JohnE > > > > > > > > > ------------------------------------------------------------------- > -- > 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]