Hi Sylvain, the methods broker.getCollectionByQuery(...) and broker.getObjectByQuery(...) return fully materialized objects. Thus OJB expects a query fed into those method to contain all mapped columns of the underlying table.
If you want to use Queries to not produce full objects but only a data view as with your "select workstationName from Workstation" query, you will have to use OJB ReportQueries. Here is an example: Criteria crit = new Criteria(); Collection results = new Vector(); ReportQueryByCriteria q = QueryFactory.newReportQuery( ProductGroup.class, crit); // define the 'columns' of the report q.setColumns(new String[] { "groupName", "sum(allArticlesInGroup.stock)", "sum(allArticlesInGroup.price)" }); crit.addGroupBy("groupName"); Iterator iter = broker.getReportQueryIteratorByQuery(q); HTH, Thomas > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Thursday, March 20, 2003 8:59 AM > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Subject: RE: how to send a real SQL query to OJB > > > Hi Armin, > > I have seen the FAQ. Thanks. > > But it doesn't work for me. > > My SQL query is "select workstationName from Workstation". > From my database query analyzer, this query retrieves 36 rows. > > In OJB I try: > ----code---- > String sql = "select workstationName from Workstation"; > > Query query = QueryFactory.newQuery(Workstation.class, sql); > > try { > broker.beginTransaction(); > Collection col = broker.getCollectionByQuery(query); > > int size = col.size(); > System.out.println(size); > > broker.commitTransaction(); > } catch (Throwable t) { > broker.abortTransaction(); > t.printStackTrace(); > } > ----code---- > > The problem is that the size of the collection is 0! > OJB doesn't retrieve anything! > > But if I try the query "select * from Workstation", it works!! > > Have you an idea what's the problem? > > I'm using OJB 0.9.5. > > > Thanks > Sylvain > > > -----Message d'origine----- > De: Armin Waibel [mailto:[EMAIL PROTECTED] > Date: mercredi, 19. mars 2003 16:12 > À: OJB Users List > Objet: Re: how to send a real SQL query to OJB > > > Hi Sylvain, > > see FAQ > http://db.apache.org/ojb/faq.html > > topic "Is it possible to perform my own sql-queries in OJB?" > + "Can I directly obtain a java.sql.Connection within OJB?" > > regards, > Armin > > ----- Original Message ----- > From: <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, March 19, 2003 4:05 PM > Subject: how to send a real SQL query to OJB > > > Hello, > > I have a String variable which contains a real SQL query like this: > "SELECT distinct(workstationName) FROM Workstation w, > WntWorkstation t, > Package p, Package_Workstation r WHERE (w.workstationName like '%' or > w.workstationName is NULL) order by w.workstationName" > > How can I send this query (as written above) to OJB? > > Thanks > Sylvain > > --------------------------------------------------------------------- > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]